diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2016-06-19 07:24:08 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2016-07-07 10:24:53 +0200 |
commit | da1fd52202cffa3260470565b74af885a466cb00 (patch) | |
tree | c5cc2898e8a4d3f86742ec605a87d1a45f333626 /src/db | |
parent | 095c198509601e30281d64becebdf47171a2f5b4 (diff) | |
download | sssd-da1fd52202cffa3260470565b74af885a466cb00.tar.gz sssd-da1fd52202cffa3260470565b74af885a466cb00.tar.xz sssd-da1fd52202cffa3260470565b74af885a466cb00.zip |
SYSDB: add_name_and_aliases_for_name_override no longer needs to special case subdomain users
All user and group names use the same unified format in the cache, so
there's no need to special-case subdomains and create different names
for the main domain and a subdomain.
Reviewed-by: Sumit Bose <sbose@redhat.com>
Diffstat (limited to 'src/db')
-rw-r--r-- | src/db/sysdb_views.c | 45 |
1 files changed, 5 insertions, 40 deletions
diff --git a/src/db/sysdb_views.c b/src/db/sysdb_views.c index ef1e8f5cd..7fc4ca37b 100644 --- a/src/db/sysdb_views.c +++ b/src/db/sysdb_views.c @@ -347,35 +347,14 @@ add_name_and_aliases_for_name_override(struct sss_domain_info *domain, bool add_name, const char *name_override) { - char *fq_name = NULL; int ret; - if (strchr(name_override, '@') == NULL) { - fq_name = sss_tc_fqname(attrs, domain->names, domain, name_override); - if (fq_name == NULL) { - DEBUG(SSSDBG_OP_FAILURE, "sss_tc_fqname failed.\n"); - return ENOMEM; - } - - if (!domain->case_sensitive) { - ret = sysdb_attrs_add_lc_name_alias(attrs, fq_name); - } else { - ret = sysdb_attrs_add_string(attrs, SYSDB_NAME_ALIAS, - fq_name); - } - if (ret != EOK) { - DEBUG(SSSDBG_OP_FAILURE, - "sysdb_attrs_add_lc_name_alias failed.\n"); - goto done; - } - } - if (add_name) { ret = sysdb_attrs_add_string(attrs, SYSDB_DEFAULT_OVERRIDE_NAME, - fq_name == NULL ? name_override : fq_name); + name_override); if (ret != EOK) { DEBUG(SSSDBG_OP_FAILURE, "sysdb_attrs_add_lc_name_alias failed.\n"); - goto done; + return ret; } } @@ -386,14 +365,10 @@ add_name_and_aliases_for_name_override(struct sss_domain_info *domain, } if (ret != EOK) { DEBUG(SSSDBG_OP_FAILURE, "sysdb_attrs_add_lc_name_alias failed.\n"); - goto done; + return ret; } - ret = EOK; - -done: - talloc_free(fq_name); - return ret; + return EOK; } errno_t sysdb_store_override(struct sss_domain_info *domain, @@ -957,7 +932,6 @@ static errno_t sysdb_search_override_by_name(TALLOC_CTX *mem_ctx, struct ldb_result *orig_res; char *sanitized_name; char *lc_sanitized_name; - const char *src_name; int ret; const char *orig_obj_dn; @@ -974,16 +948,7 @@ static errno_t sysdb_search_override_by_name(TALLOC_CTX *mem_ctx, goto done; } - /* If this is a subdomain we need to use fully qualified names for the - * search as well by default */ - src_name = sss_get_domain_name(tmp_ctx, name, domain); - if (src_name == NULL) { - DEBUG(SSSDBG_OP_FAILURE, "sss_get_domain_name failed.\n"); - ret = ENOMEM; - goto done; - } - - ret = sss_filter_sanitize_for_dom(tmp_ctx, src_name, domain, + ret = sss_filter_sanitize_for_dom(tmp_ctx, name, domain, &sanitized_name, &lc_sanitized_name); if (ret != EOK) { DEBUG(SSSDBG_OP_FAILURE, "sss_filter_sanitize_for_dom failed.\n"); |