allow noUserMod attrs write proxying when manageDIT is set (still to work in frontend for add)

This commit is contained in:
Pierangelo Masarati 2005-08-17 19:40:02 +00:00
parent 5873048347
commit 557f5eb2ca
5 changed files with 13 additions and 6 deletions

View 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;
}

View 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;
}

View 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;
}

View 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;
}

View 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 )
{