]> git.sur5r.net Git - openldap/commitdiff
allow noUserMod attrs write proxying when manageDIT is set (still to work in frontend...
authorPierangelo Masarati <ando@openldap.org>
Wed, 17 Aug 2005 19:40:02 +0000 (19:40 +0000)
committerPierangelo Masarati <ando@openldap.org>
Wed, 17 Aug 2005 19:40:02 +0000 (19:40 +0000)
servers/slapd/back-ldap/add.c
servers/slapd/back-ldap/modify.c
servers/slapd/back-meta/add.c
servers/slapd/back-meta/modify.c
servers/slapd/overlays/rwm.c

index e27e6a0255b8e9b5b57055f5a7d908f4c87e016d..96a9c3b94d089b216d1810a44f701a9abaf6ef71 100644 (file)
@@ -69,7 +69,8 @@ ldap_back_add(
 
        isupdate = be_shadow_update( op );
        for ( i = 0, a = op->oq_add.rs_e->e_attrs; a; a = a->a_next ) {
-               if ( !isupdate && a->a_desc->ad_type->sat_no_user_mod  ) {
+               if ( !isupdate && !get_manageDIT( op ) && a->a_desc->ad_type->sat_no_user_mod  )
+               {
                        continue;
                }
 
index 6ba89953ea684b3c0216b386dd2ce080ee224707..adc0b649ad67de3d04ad71f290b73b4cde0c04f7 100644 (file)
@@ -64,7 +64,8 @@ ldap_back_modify(
 
        isupdate = be_shadow_update( op );
        for ( i = 0, ml = op->oq_modify.rs_modlist; ml; ml = ml->sml_next ) {
-               if ( !isupdate && ml->sml_desc->ad_type->sat_no_user_mod  ) {
+               if ( !isupdate && !!get_manageDIT( op ) && ml->sml_desc->ad_type->sat_no_user_mod  )
+               {
                        continue;
                }
 
index 9628cdd6ecd4739c1c0c11be478178764f38b8fb..fe383f230cfe99d74f623b10f1fa56a90334c40c 100644 (file)
@@ -83,7 +83,8 @@ meta_back_add( Operation *op, SlapReply *rs )
        for ( i = 0, a = op->ora_e->e_attrs; a; a = a->a_next ) {
                int                     j, is_oc = 0;
 
-               if ( !isupdate && a->a_desc->ad_type->sat_no_user_mod  ) {
+               if ( !isupdate && !get_manageDIT( op ) && a->a_desc->ad_type->sat_no_user_mod  )
+               {
                        continue;
                }
 
index f2b40d24a409d32e08c1b13eb1160affd41373fd..f6d2e9f428d021e8b5bc339067760fc16a764ac4 100644 (file)
@@ -89,7 +89,8 @@ meta_back_modify( Operation *op, SlapReply *rs )
        for ( i = 0, ml = op->orm_modlist; ml; ml = ml->sml_next ) {
                int     j, is_oc = 0;
 
-               if ( !isupdate && ml->sml_desc->ad_type->sat_no_user_mod  ) {
+               if ( !isupdate && !get_manageDIT( op ) && ml->sml_desc->ad_type->sat_no_user_mod  )
+               {
                        continue;
                }
 
index ebe9815438794af469b9c0120ba30b9f642120ae..de1f5a830c40a81d53407b99441ab30a7d5c5567 100644 (file)
@@ -154,7 +154,8 @@ rwm_op_add( Operation *op, SlapReply *rs )
                                }
                        }
 
-               } else if ( !isupdate && (*ap)->a_desc->ad_type->sat_no_user_mod ) {
+               } else if ( !isupdate && !get_manageDIT( op ) && (*ap)->a_desc->ad_type->sat_no_user_mod )
+               {
                        goto next_attr;
 
                } else {
@@ -437,7 +438,8 @@ rwm_op_modify( Operation *op, SlapReply *rs )
                {
                        is_oc = 1;
 
-               } else if ( !isupdate && (*mlp)->sml_desc->ad_type->sat_no_user_mod  ) {
+               } else if ( !isupdate && !get_manageDIT( op ) && (*mlp)->sml_desc->ad_type->sat_no_user_mod  )
+               {
                        goto next_mod;
 
                } else {
@@ -895,6 +897,7 @@ rwm_attrs( Operation *op, SlapReply *rs, Attribute** a_first, int stripEntryDN )
                        }
                        
                } else if ( !isupdate
+                       && !get_manageDIT( op )
                        && (*ap)->a_desc->ad_type->sat_no_user_mod 
                        && (*ap)->a_desc->ad_type != slap_schema.si_at_undefined )
                {