diff options
| author | Nathan Kinder <nkinder@redhat.com> | 2008-06-09 21:43:59 +0000 |
|---|---|---|
| committer | Nathan Kinder <nkinder@redhat.com> | 2008-06-09 21:43:59 +0000 |
| commit | ec3d1f1e4c279a4d30bb05ab5d61b6cd97586090 (patch) | |
| tree | f481744f2deef9a04f21d439dadab9c4360763a7 | |
| parent | 8f64d38615fd6a2232a48b95863fda0daa80014e (diff) | |
Resolves: 443241
Summary: Fixed issues with cleanup task not adding indirect memberships.
| -rw-r--r-- | ldap/servers/plugins/memberof/memberof.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/ldap/servers/plugins/memberof/memberof.c b/ldap/servers/plugins/memberof/memberof.c index c9341571..d435aec8 100644 --- a/ldap/servers/plugins/memberof/memberof.c +++ b/ldap/servers/plugins/memberof/memberof.c @@ -2188,9 +2188,9 @@ int memberof_fix_memberof(char *dn, char *filter_str) /* memberof_fix_memberof_callback() * Add initial and/or fix up broken group list in entry * - * 1. Make sure direct membership groups are in the entry - * 2. Add all groups that current group list allows through nested membership - * 3. Trim groups that have no relationship to entry + * 1. Remove all present memberOf values + * 2. Add direct group membership memberOf values + * 3. Add indirect group membership memberOf values */ int memberof_fix_memberof_callback(Slapi_Entry *e, void *callback_data) { @@ -2198,14 +2198,12 @@ int memberof_fix_memberof_callback(Slapi_Entry *e, void *callback_data) char *dn = slapi_entry_get_dn(e); memberof_add_groups data = {dn, dn}; - /* step 1. and step 2. */ + /* step 1 */ + slapi_entry_attr_delete(e, MEMBEROF_ATTR); + + /* step 2 and 3 */ rc = memberof_call_foreach_dn(0, dn, MEMBEROF_GROUP_ATTR, memberof_add_groups_search_callback, &data); - if(0 == rc) - { - /* step 3. */ - rc = memberof_test_membership_callback(e, 0); - } return rc; } |
