From 357efd33759fd1297723d9956a7f77226fe26871 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 28 Sep 2011 11:26:09 -0400 Subject: LDAP: Convert ldap_*_search_filter Instead of making this a global option for all user lookups, make it only used if the search base is passed without an explicit filter. --- src/providers/ldap/ldap_id.c | 44 ++++++++++++-------------------------------- 1 file changed, 12 insertions(+), 32 deletions(-) (limited to 'src/providers/ldap/ldap_id.c') diff --git a/src/providers/ldap/ldap_id.c b/src/providers/ldap/ldap_id.c index 607fd278..3e93bb85 100644 --- a/src/providers/ldap/ldap_id.c +++ b/src/providers/ldap/ldap_id.c @@ -65,7 +65,6 @@ struct tevent_req *users_get_send(TALLOC_CTX *memctx, struct users_get_state *state; const char *attr_name; char *clean_name; - char *base_filter; int ret; req = tevent_req_create(memctx, &state, struct users_get_state); @@ -104,21 +103,12 @@ struct tevent_req *users_get_send(TALLOC_CTX *memctx, goto fail; } - base_filter = talloc_asprintf(state, "(&(%s=%s)(objectclass=%s))", - attr_name, clean_name, - ctx->opts->user_map[SDAP_OC_USER].name); + state->filter = talloc_asprintf(state, "(&(%s=%s)(objectclass=%s))", + attr_name, clean_name, + ctx->opts->user_map[SDAP_OC_USER].name); talloc_zfree(clean_name); - if (!base_filter) { - DEBUG(2, ("Failed to build the base filter\n")); - ret = ENOMEM; - goto fail; - } - - state->filter = sdap_get_id_specific_filter(state, base_filter, - dp_opt_get_string(ctx->opts->basic, SDAP_USER_SEARCH_FILTER)); - talloc_zfree(base_filter); if (!state->filter) { - DEBUG(2, ("Failed to build user filter\n")); + DEBUG(2, ("Failed to build the base filter\n")); ret = ENOMEM; goto fail; } @@ -306,7 +296,6 @@ struct tevent_req *groups_get_send(TALLOC_CTX *memctx, struct groups_get_state *state; const char *attr_name; char *clean_name; - char *base_filter; int ret; req = tevent_req_create(memctx, &state, struct groups_get_state); @@ -345,25 +334,16 @@ struct tevent_req *groups_get_send(TALLOC_CTX *memctx, goto fail; } - base_filter = talloc_asprintf(state, - "(&(%s=%s)(objectclass=%s)(%s=*)(&(%s=*)(!(%s=0))))", - attr_name, clean_name, - ctx->opts->group_map[SDAP_OC_GROUP].name, - ctx->opts->group_map[SDAP_AT_GROUP_NAME].name, - ctx->opts->group_map[SDAP_AT_GROUP_GID].name, - ctx->opts->group_map[SDAP_AT_GROUP_GID].name); + state->filter = talloc_asprintf(state, + "(&(%s=%s)(objectclass=%s)(%s=*)(&(%s=*)(!(%s=0))))", + attr_name, clean_name, + ctx->opts->group_map[SDAP_OC_GROUP].name, + ctx->opts->group_map[SDAP_AT_GROUP_NAME].name, + ctx->opts->group_map[SDAP_AT_GROUP_GID].name, + ctx->opts->group_map[SDAP_AT_GROUP_GID].name); talloc_zfree(clean_name); - if (!base_filter) { - DEBUG(2, ("Failed to build filter\n")); - ret = ENOMEM; - goto fail; - } - - state->filter = sdap_get_id_specific_filter(state, base_filter, - dp_opt_get_string(ctx->opts->basic, SDAP_GROUP_SEARCH_FILTER)); - talloc_zfree(base_filter); if (!state->filter) { - DEBUG(2, ("Failed to build group-specific filter\n")); + DEBUG(2, ("Failed to build filter\n")); ret = ENOMEM; goto fail; } -- cgit