diff options
author | Endi S. Dewata <edewata@redhat.com> | 2010-03-22 17:53:33 -0500 |
---|---|---|
committer | Rich Megginson <rmeggins@redhat.com> | 2010-03-26 11:48:47 -0600 |
commit | 6e839e9cc2acb957dc3435ee46aa9d2942cf1bcc (patch) | |
tree | c472ce060701282b6a7f1f0795de3f1faff78152 | |
parent | 48d50e8f06e0c2fd8e2541c3c239217a6b72ebbc (diff) | |
download | ds-6e839e9cc2acb957dc3435ee46aa9d2942cf1bcc.tar.gz ds-6e839e9cc2acb957dc3435ee46aa9d2942cf1bcc.tar.xz ds-6e839e9cc2acb957dc3435ee46aa9d2942cf1bcc.zip |
Bug 566320 - RFE: add exception to removal of attributes in cn=config for aci
https://bugzilla.redhat.com/show_bug.cgi?id=566320
Resolves: bug 566320
Bug description: RFE: add exception to removal of attributes in cn=config for aci
Fix description: The modify_config_dse() has been modified to
check the ignore_attr_type() for all types of modify operation.
Reviewed by: rmeggins (and pushed by)
-rw-r--r-- | ldap/servers/slapd/configdse.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/ldap/servers/slapd/configdse.c b/ldap/servers/slapd/configdse.c index 317c78db..91b85800 100644 --- a/ldap/servers/slapd/configdse.c +++ b/ldap/servers/slapd/configdse.c @@ -391,17 +391,17 @@ modify_config_dse(Slapi_PBlock *pb, Slapi_Entry* entryBefore, Slapi_Entry* e, in for ( apply_mods = 0; apply_mods <= 1; apply_mods++ ) { int i = 0; for (i = 0; (mods[i] && (LDAP_SUCCESS == rc)); i++) { + /* send all aci modifications to the backend */ + config_attr = (char *)mods[i]->mod_type; + if (ignore_attr_type(config_attr)) + continue; + if ((mods[i]->mod_op & LDAP_MOD_DELETE) || (mods[i]->mod_op & LDAP_MOD_ADD)) { rc= LDAP_UNWILLING_TO_PERFORM; PR_snprintf(returntext, SLAPI_DSE_RETURNTEXT_SIZE, "%s attributes is not allowed", (mods[i]->mod_op & LDAP_MOD_DELETE) ? "Deleting" : "Adding"); } else if (mods[i]->mod_op & LDAP_MOD_REPLACE) { - /* send all aci modifications to the backend */ - config_attr = (char *)mods[i]->mod_type; - if (ignore_attr_type(config_attr)) - continue; - if ( (checked_all_maxdiskspace_and_mlogsize == 0 ) && ((strcasecmp( mods[i]->mod_type, CONFIG_ERRORLOG_MAXLOGDISKSPACE_ATTRIBUTE) == 0) || (strcasecmp( mods[i]->mod_type, CONFIG_ERRORLOG_MAXLOGSIZE_ATTRIBUTE) == 0) || |