diff options
| author | Nathan Kinder <nkinder@redhat.com> | 2008-03-28 20:45:22 +0000 |
|---|---|---|
| committer | Nathan Kinder <nkinder@redhat.com> | 2008-03-28 20:45:22 +0000 |
| commit | 76b38517b66de8dd73d25155631e0116ba2d5ab0 (patch) | |
| tree | 32ded52fc1c925c6215f8d170432cd8359332eb3 /ldap/servers/plugins/memberof | |
| parent | 884f4588b93c7d7252b45317da5062ee9c786267 (diff) | |
| download | ds-76b38517b66de8dd73d25155631e0116ba2d5ab0.tar.gz ds-76b38517b66de8dd73d25155631e0116ba2d5ab0.tar.xz ds-76b38517b66de8dd73d25155631e0116ba2d5ab0.zip | |
Resolves: 439097
Summary: Handle delete modify of all present member values. When doing a delete modify, we should treat it the same as a replace when no deletion values are specified.
Diffstat (limited to 'ldap/servers/plugins/memberof')
| -rw-r--r-- | ldap/servers/plugins/memberof/memberof.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/ldap/servers/plugins/memberof/memberof.c b/ldap/servers/plugins/memberof/memberof.c index 4102a880..5c69fda5 100644 --- a/ldap/servers/plugins/memberof/memberof.c +++ b/ldap/servers/plugins/memberof/memberof.c @@ -654,8 +654,19 @@ int memberof_postop_modify(Slapi_PBlock *pb) case LDAP_MOD_DELETE: { - /* remove group DN from targets */ - memberof_del_smod_list(pb, dn, smod); + /* If there are no values in the smod, we should + * just do a replace instead. The user is just + * trying to delete all members from this this + * entry, which the replace code deals with. */ + if (slapi_mod_get_num_values(smod) == 0) + { + memberof_replace_list(pb, dn); + } + else + { + /* remove group DN from target values in smod*/ + memberof_del_smod_list(pb, dn, smod); + } break; } |
