diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2012-11-17 23:55:13 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2012-11-20 18:02:17 +0100 |
commit | 8455d5ab61184e0d126fc074a9ce6e98391eb909 (patch) | |
tree | 18ce853602a74e8fc581908d4ff2a83d46dc7dcd /src/tools | |
parent | 25285335d6d41400870e64f07904e899263699f5 (diff) | |
download | sssd-8455d5ab61184e0d126fc074a9ce6e98391eb909.tar.gz sssd-8455d5ab61184e0d126fc074a9ce6e98391eb909.tar.bz2 sssd-8455d5ab61184e0d126fc074a9ce6e98391eb909.zip |
LDAP: Only convert direct parents' ghost attribute to member
https://fedorahosted.org/sssd/ticket/1612
This patch changes the handling of ghost attributes when saving the
actual user entry. Instead of always linking all groups that contained
the ghost attribute with the new user entry, the original member
attributes are now saved in the group object and the user entry is only
linked with its direct parents.
As the member attribute is compared against the originalDN of the user,
if either the originalDN or the originalMember attributes are missing,
the user object is linked with all the groups as a fallback.
The original member attributes are only saved if the LDAP schema
supports nesting.
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/sss_seed.c | 2 | ||||
-rw-r--r-- | src/tools/sss_sync_ops.c | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/tools/sss_seed.c b/src/tools/sss_seed.c index af296c73..aa11ab51 100644 --- a/src/tools/sss_seed.c +++ b/src/tools/sss_seed.c @@ -740,7 +740,7 @@ static int seed_cache_user(struct seed_ctx *sctx) ret = sysdb_add_user(sctx->sysdb, sctx->uctx->name, sctx->uctx->uid, sctx->uctx->gid, sctx->uctx->gecos, sctx->uctx->home, - sctx->uctx->shell, NULL, 0, 0); + sctx->uctx->shell, NULL, NULL, 0, 0); if (ret != EOK) { DEBUG(SSSDBG_OP_FAILURE, ("Failed to add user to the cache. (%d)[%s]\n", diff --git a/src/tools/sss_sync_ops.c b/src/tools/sss_sync_ops.c index 7183eb3e..10a1a127 100644 --- a/src/tools/sss_sync_ops.c +++ b/src/tools/sss_sync_ops.c @@ -467,7 +467,8 @@ int useradd(TALLOC_CTX *mem_ctx, int ret; ret = sysdb_add_user(sysdb, data->name, data->uid, data->gid, - data->gecos, data->home, data->shell, NULL, 0, 0); + data->gecos, data->home, data->shell, + NULL, NULL, 0, 0); if (ret) { goto done; } |