]> git.sur5r.net Git - openldap/commitdiff
more on manage
authorPierangelo Masarati <ando@openldap.org>
Wed, 17 Aug 2005 22:06:46 +0000 (22:06 +0000)
committerPierangelo Masarati <ando@openldap.org>
Wed, 17 Aug 2005 22:06:46 +0000 (22:06 +0000)
servers/slapd/acl.c
servers/slapd/modify.c
servers/slapd/slap.h

index 2f27cf5b5fa139ef9932b99308b0f8a233f72125..d6bc21d3118c8f69c9902ac5317b946499accf58 100644 (file)
@@ -2290,7 +2290,9 @@ acl_check_modlist(
                 * by ACL_WRITE checking as any found here are not provided
                 * by the user
                 */
-               if ( is_at_no_user_mod( mlist->sml_desc->ad_type ) ) {
+               if ( is_at_no_user_mod( mlist->sml_desc->ad_type )
+                               && !mlist->sml_managing )
+               {
                        Debug( LDAP_DEBUG_ACL, "acl: no-user-mod %s:"
                                " modify access granted\n",
                                mlist->sml_desc->ad_cname.bv_val, 0, 0 );
index ef204292173605db0983cfdcfbd766527d59d929..9dd1061f7f0f6b045864317c5937d48f2b6fbbed 100644 (file)
@@ -184,8 +184,8 @@ do_modify(
                goto cleanup;
        }
 
-       rs->sr_err = slap_mods_check( modlist, &rs->sr_text,
-               textbuf, textlen, NULL );
+       rs->sr_err = slap_mods_check( modlist,
+               &rs->sr_text, textbuf, textlen, NULL );
 
        if ( rs->sr_err != LDAP_SUCCESS ) {
                send_ldap_result( op, rs );
@@ -499,8 +499,9 @@ slap_mods_no_user_mod_check(
        for ( ; ml != NULL; ml = ml->sml_next ) {
                if ( !is_at_no_user_mod( ml->sml_desc->ad_type ) ) continue;
 
-               if( get_manageDIT( op )) {
+               if ( get_manageDIT( op ) ) {
                        if ( ml->sml_desc->ad_type->sat_flags & SLAP_AT_MANAGEABLE ) {
+                               ml->sml_managing = 1;
                                continue;
                        }
 
index 0d9fc9ce9da9365383500db77ba8d213b62651be..5fed372fd32afbd93d6c84847110b76be269b6e4 100644 (file)
@@ -1173,6 +1173,7 @@ typedef struct slap_mod_list {
 #define        sml_type        sml_mod.sm_type
 #define sml_values     sml_mod.sm_values
 #define sml_nvalues    sml_mod.sm_nvalues
+       char sml_managing;
        struct slap_mod_list *sml_next;
 } Modifications;