* by the user
*/
if ( is_at_no_user_mod( mlist->sml_desc->ad_type )
- && !mlist->sml_managing )
+ && ! ( mlist->sml_flags & SLAP_MOD_MANAGING ) )
{
Debug( LDAP_DEBUG_ACL, "acl: no-user-mod %s:"
" modify access granted\n",
*/
if ( ! access_allowed( op, e,
mlist->sml_desc, NULL,
- mlist->sml_managing ? ACL_MANAGE : ACL_WDEL,
+ ( mlist->sml_flags & SLAP_MOD_MANAGING ) ? ACL_MANAGE : ACL_WDEL,
&state ) )
{
ret = 0;
{
if ( ! access_allowed( op, e,
mlist->sml_desc, bv,
- mlist->sml_managing ? ACL_MANAGE : ACL_WADD,
+ ( mlist->sml_flags & SLAP_MOD_MANAGING ) ? ACL_MANAGE : ACL_WADD,
&state ) )
{
ret = 0;
if ( mlist->sml_values == NULL ) {
if ( ! access_allowed( op, e,
mlist->sml_desc, NULL,
- mlist->sml_managing ? ACL_MANAGE : ACL_WDEL,
+ ( mlist->sml_flags & SLAP_MOD_MANAGING ) ? ACL_MANAGE : ACL_WDEL,
NULL ) )
{
ret = 0;
{
if ( ! access_allowed( op, e,
mlist->sml_desc, bv,
- mlist->sml_managing ? ACL_MANAGE : ACL_WDEL,
+ ( mlist->sml_flags & SLAP_MOD_MANAGING ) ? ACL_MANAGE : ACL_WDEL,
&state ) )
{
ret = 0;
}
mod = (Modifications *) ch_malloc( sizeof(Modifications) );
- mod->sml_managing = 0;
mod->sml_op = LDAP_MOD_ADD;
mod->sml_flags = 0;
mod->sml_next = NULL;
while ( a_new != NULL ) {
a_new_desc = a_new->a_desc;
mod = (Modifications *) malloc( sizeof( Modifications ));
- mod->sml_managing = 0;
mod->sml_op = LDAP_MOD_REPLACE;
mod->sml_flags = 0;
mod->sml_values = tmp.sml_values;
mod->sml_nvalues = NULL;
mod->sml_desc = NULL;
- mod->sml_managing = 0;
mod->sml_next = NULL;
*modtail = mod;
if ( get_manageDIT( op ) ) {
if ( ml->sml_desc->ad_type->sat_flags & SLAP_AT_MANAGEABLE ) {
- ml->sml_managing = 1;
+ ml->sml_flags |= SLAP_MOD_MANAGING;
continue;
}
if( rc != LDAP_SUCCESS ) return rc;
mod = (Modifications *) ch_malloc( sizeof( Modifications ) );
- mod->sml_managing = 0;
mod->sml_op = mop;
mod->sml_flags = SLAP_MOD_INTERNAL;
BER_BVZERO( &mod->sml_type );
tmpval.bv_val = uuidbuf;
mod = (Modifications *) ch_malloc( sizeof( Modifications ) );
- mod->sml_managing = 0;
mod->sml_op = mop;
mod->sml_flags = SLAP_MOD_INTERNAL;
BER_BVZERO( &mod->sml_type );
if ( mod == *modtail ) {
mod = (Modifications *) ch_malloc( sizeof( Modifications ) );
- mod->sml_managing = 0;
mod->sml_op = mop;
mod->sml_flags = SLAP_MOD_INTERNAL;
BER_BVZERO( &mod->sml_type );
if ( mod == *modtail ) {
mod = (Modifications *) ch_malloc( sizeof( Modifications ) );
- mod->sml_managing = 0;
mod->sml_op = mop;
mod->sml_flags = SLAP_MOD_INTERNAL;
BER_BVZERO( &mod->sml_type );
if ( SLAP_LASTMOD( op->o_bd ) ) {
mod = (Modifications *) ch_malloc( sizeof( Modifications ) );
- mod->sml_managing = 0;
mod->sml_op = mop;
mod->sml_flags = SLAP_MOD_INTERNAL;
BER_BVZERO( &mod->sml_type );
if ( mod == *modtail ) {
mod = (Modifications *) ch_malloc( sizeof( Modifications ) );
- mod->sml_managing = 0;
mod->sml_op = mop;
mod->sml_flags = SLAP_MOD_INTERNAL;
BER_BVZERO( &mod->sml_type );
if ( mod == *modtail ) {
mod = (Modifications *) ch_malloc( sizeof( Modifications ) );
- mod->sml_managing = 0;
mod->sml_op = mop;
mod->sml_flags = SLAP_MOD_INTERNAL;
BER_BVZERO( &mod->sml_type );
}
mod_tmp->sml_op = SLAP_MOD_SOFTADD;
mod_tmp->sml_flags = SLAP_MOD_INTERNAL;
- mod_tmp->sml_managing = 0;
mod_tmp->sml_next = mod;
mod = mod_tmp;
}
}
mod_tmp->sml_op = LDAP_MOD_DELETE;
mod_tmp->sml_flags = SLAP_MOD_INTERNAL;
- mod_tmp->sml_managing = 0;
mod_tmp->sml_next = mod;
mod = mod_tmp;
}
m->sml_flags = 0;
m->sml_type = ad_pwdAccountLockedTime->ad_cname;
m->sml_desc = ad_pwdAccountLockedTime;
- m->sml_managing = 0;
m->sml_next = *mod;
*mod = m;
}
m->sml_values = ch_calloc( sizeof(struct berval), 2 );
ber_dupbv( &m->sml_values[0], ×tamp );
- m->sml_managing = 0;
m->sml_next = mod;
mod = m;
m->sml_desc = ad_pwdAccountLockedTime;
m->sml_values = ch_calloc( sizeof(struct berval), 2 );
ber_dupbv( &m->sml_values[0], ×tamp );
- m->sml_managing = 0;
m->sml_next = mod;
mod = m;
}
m->sml_flags = 0;
m->sml_type = ad_pwdFailureTime->ad_cname;
m->sml_desc = ad_pwdFailureTime;
- m->sml_managing = 0;
m->sml_next = mod;
mod = m;
}
m->sml_desc = ad_pwdGraceUseTime;
m->sml_values = ch_calloc( sizeof(struct berval), 2 );
ber_dupbv( &m->sml_values[0], ×tamp );
- m->sml_managing = 0;
m->sml_next = mod;
mod = m;
ml->sml_values[1].bv_len = 0;
ml->sml_values[1].bv_val = NULL;
ml->sml_nvalues = NULL;
- ml->sml_managing = 0;
ml->sml_next = op->orm_modlist;
op->orm_modlist = ml;
delmod = ml;
}
mods->sml_flags = SLAP_MOD_INTERNAL;
mods->sml_nvalues = NULL;
- mods->sml_managing = 0;
mods->sml_next = NULL;
modtail->sml_next = mods;
modtail = mods;
mods->sml_desc = ad_pwdGraceUseTime;
mods->sml_values = NULL;
mods->sml_nvalues = NULL;
- mods->sml_managing = 0;
mods->sml_next = NULL;
modtail->sml_next = mods;
modtail = mods;
mods->sml_desc = ad_pwdReset;
mods->sml_values = NULL;
mods->sml_nvalues = NULL;
- mods->sml_managing = 0;
mods->sml_next = NULL;
modtail->sml_next = mods;
modtail = mods;
mods->sml_values[i].bv_len = 0;
ber_dupbv( &(mods->sml_values[i]), &p->bv );
}
- mods->sml_managing = 0;
mods->sml_next = NULL;
modtail->sml_next = mods;
modtail = mods;
mods->sml_values[ 1 ].bv_val = NULL;
mods->sml_values[ 1 ].bv_len = 0;
make_pwd_history_value( timebuf, &mods->sml_values[0], pa );
- mods->sml_managing = 0;
mods->sml_next = NULL;
modtail->sml_next = mods;
modtail = mods;
mp->sml_flags = 0;
ber_dupbv(&mp->sml_values[0], &dd->nothing);
ber_dupbv(&mp->sml_nvalues[0], &dd->nnothing);
- mp->sml_managing = 0;
mp->sml_next = ma;
ma = mp;
}
mp->sml_flags = 0;
ber_dupbv(&mp->sml_values[0], &dd->dn);
ber_dupbv(&mp->sml_nvalues[0], &mp->sml_values[0]);
- mp->sml_managing = 0;
mp->sml_next = ma;
ma = mp;
Debug(LDAP_DEBUG_TRACE, "refint_delete_cb: %s: %s\n",
ber_dupbv(&mp->sml_nvalues[0], &dd->nnewdn);
mp->sml_values[1].bv_len = mp->sml_nvalues[1].bv_len = 0;
mp->sml_values[1].bv_val = mp->sml_nvalues[1].bv_val = NULL;
- mp->sml_managing = 0;
mp->sml_next = ip->mm;
ip->mm = mp;
mp = ch_malloc(sizeof(Modifications));
ber_dupbv(&mp->sml_nvalues[0], &dd->dn);
mp->sml_values[1].bv_len = mp->sml_nvalues[1].bv_len = 0;
mp->sml_values[1].bv_val = mp->sml_nvalues[1].bv_val = NULL;
- mp->sml_managing = 0;
mp->sml_next = ip->mm;
ip->mm = mp;
Debug(LDAP_DEBUG_TRACE, "refint_modrdn_cb: %s: %s\n",
ml->sml_desc = slap_schema.si_ad_userPassword;
ml->sml_op = LDAP_MOD_REPLACE;
ml->sml_flags = 0;
- ml->sml_managing = 0;
ml->sml_next = qpw->rs_mods;
qpw->rs_mods = ml;
BER_BVZERO( &mod->sml_values[j] );
mod->sml_nvalues = NULL;
mod->sml_desc = NULL;
- mod->sml_managing = 0;
*modtail = mod;
modtail = &mod->sml_next;
}
* running as non-root user, for user modifiable attributes.
*/
#define SLAP_MOD_INTERNAL 0x01
+#define SLAP_MOD_MANAGING 0x02
AttributeDescription *sm_desc;
struct berval sm_type;
#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;
mod->sml_type = tmp.sml_type;
mod->sml_values = tmp.sml_values;
mod->sml_nvalues = NULL;
- mod->sml_managing = 0;
*modtail = mod;
modtail = &mod->sml_next;
mod->sml_type = mod->sml_desc->ad_cname;
mod->sml_values = NULL;
mod->sml_nvalues = NULL;
- mod->sml_managing = 0;
if ( !modhead ) modhead = mod;
if ( modtail ) {
modtail->sml_next = mod;
ber_bvarray_add( &mod->sml_values, &uuid_bv );
ber_dupbv( &uuid_bv, syncUUID );
ber_bvarray_add( &mod->sml_nvalues, &uuid_bv );
- mod->sml_managing = 0;
modtail->sml_next = mod;
op->o_tag = LDAP_REQ_MODIFY;