mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
fix root entry delete/add
This commit is contained in:
parent
3019716578
commit
1faf38448b
@ -1111,34 +1111,34 @@ backsql_add( Operation *op, SlapReply *rs )
|
||||
|
||||
} else {
|
||||
dnParent( &op->ora_e->e_nname, &pdn );
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the parent
|
||||
*/
|
||||
bsi.bsi_e = &p;
|
||||
rs->sr_err = backsql_init_search( &bsi, &pdn,
|
||||
LDAP_SCOPE_BASE,
|
||||
(time_t)(-1), NULL, dbh, op, rs, slap_anlist_no_attrs,
|
||||
( BACKSQL_ISF_MATCHED | BACKSQL_ISF_GET_ENTRY ) );
|
||||
if ( rs->sr_err != LDAP_SUCCESS ) {
|
||||
Debug( LDAP_DEBUG_TRACE, "backsql_add(): "
|
||||
"could not retrieve addDN parent "
|
||||
"\"%s\" ID - %s matched=\"%s\"\n",
|
||||
pdn.bv_val,
|
||||
rs->sr_err == LDAP_REFERRAL ? "referral" : "no such entry",
|
||||
rs->sr_matched ? rs->sr_matched : "(null)" );
|
||||
e = &p;
|
||||
goto done;
|
||||
}
|
||||
/*
|
||||
* Get the parent
|
||||
*/
|
||||
bsi.bsi_e = &p;
|
||||
rs->sr_err = backsql_init_search( &bsi, &pdn,
|
||||
LDAP_SCOPE_BASE,
|
||||
(time_t)(-1), NULL, dbh, op, rs, slap_anlist_no_attrs,
|
||||
( BACKSQL_ISF_MATCHED | BACKSQL_ISF_GET_ENTRY ) );
|
||||
if ( rs->sr_err != LDAP_SUCCESS ) {
|
||||
Debug( LDAP_DEBUG_TRACE, "backsql_add(): "
|
||||
"could not retrieve addDN parent "
|
||||
"\"%s\" ID - %s matched=\"%s\"\n",
|
||||
pdn.bv_val,
|
||||
rs->sr_err == LDAP_REFERRAL ? "referral" : "no such entry",
|
||||
rs->sr_matched ? rs->sr_matched : "(null)" );
|
||||
e = &p;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* check "children" pseudo-attribute access to parent */
|
||||
if ( !access_allowed( op, &p, slap_schema.si_ad_children,
|
||||
NULL, ACL_WADD, NULL ) )
|
||||
{
|
||||
rs->sr_err = LDAP_INSUFFICIENT_ACCESS;
|
||||
e = &p;
|
||||
goto done;
|
||||
/* check "children" pseudo-attribute access to parent */
|
||||
if ( !access_allowed( op, &p, slap_schema.si_ad_children,
|
||||
NULL, ACL_WADD, NULL ) )
|
||||
{
|
||||
rs->sr_err = LDAP_INSUFFICIENT_ACCESS;
|
||||
e = &p;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
if ( get_assert( op ) &&
|
||||
|
@ -217,10 +217,10 @@ backsql_delete( Operation *op, SlapReply *rs )
|
||||
/*
|
||||
* Get the parent
|
||||
*/
|
||||
e_id = bsi.bsi_base_id;
|
||||
if ( !be_issuffix( op->o_bd, &op->o_req_ndn ) ) {
|
||||
dnParent( &op->o_req_ndn, &pdn );
|
||||
bsi.bsi_e = &p;
|
||||
e_id = bsi.bsi_base_id;
|
||||
rs->sr_err = backsql_init_search( &bsi, &pdn,
|
||||
LDAP_SCOPE_BASE,
|
||||
(time_t)(-1), NULL, dbh, op, rs,
|
||||
|
Loading…
Reference in New Issue
Block a user