summaryrefslogtreecommitdiffstats
path: root/src/providers/ldap
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2012-10-26 16:13:57 +0200
committerJakub Hrozek <jhrozek@redhat.com>2012-11-08 10:39:46 +0100
commit45e2a56cb1c6200e2f4b26937df3bfd038a8e8f5 (patch)
tree599c64ccad351a5a8b01dcf2b43bb92aec514f5c /src/providers/ldap
parent304ce93959464f3867296f596c25d3158737879f (diff)
downloadsssd-45e2a56cb1c6200e2f4b26937df3bfd038a8e8f5.tar.gz
sssd-45e2a56cb1c6200e2f4b26937df3bfd038a8e8f5.tar.xz
sssd-45e2a56cb1c6200e2f4b26937df3bfd038a8e8f5.zip
do not default fullname to gecos when schema = ad
https://fedorahosted.org/sssd/ticket/1482 When we add fullname to user_attrs, then sysdb_add_basic_user() will set fullname to gecos when it initially creates the user object in the cache, but it will be overwritten in the same transaction when sysdb_store_user() adds all the user_attrs.
Diffstat (limited to 'src/providers/ldap')
-rw-r--r--src/providers/ldap/sdap_async_users.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/providers/ldap/sdap_async_users.c b/src/providers/ldap/sdap_async_users.c
index 8974e6a24..e2e7b72d8 100644
--- a/src/providers/ldap/sdap_async_users.c
+++ b/src/providers/ldap/sdap_async_users.c
@@ -42,6 +42,7 @@ int sdap_save_user(TALLOC_CTX *memctx,
struct ldb_message_element *el;
int ret;
const char *name = NULL;
+ const char *fullname = NULL;
const char *pwd;
const char *gecos;
const char *homedir;
@@ -82,6 +83,19 @@ int sdap_save_user(TALLOC_CTX *memctx,
goto fail;
}
+ if (opts->schema_type == SDAP_SCHEMA_AD) {
+ ret = sysdb_attrs_get_string(attrs,
+ opts->user_map[SDAP_AT_USER_FULLNAME].sys_name, &fullname);
+ if (ret == EOK) {
+ ret = sysdb_attrs_add_string(user_attrs, SYSDB_FULLNAME, fullname);
+ if (ret != EOK) {
+ goto fail;
+ }
+ } else if (ret != ENOENT) {
+ goto fail;
+ }
+ }
+
ret = sysdb_attrs_get_el(attrs,
opts->user_map[SDAP_AT_USER_PWD].sys_name, &el);
if (ret) goto fail;