From: Rein Tollevik Date: Tue, 2 Feb 2010 15:51:32 +0000 (+0000) Subject: ITS#6468: Implement bi_access_allowed. X-Git-Tag: MIGRATION_CVS2GIT~704 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1af4e43236749abfc062fcfa33e21810e96e59c6;p=openldap ITS#6468: Implement bi_access_allowed. --- diff --git a/servers/slapd/backglue.c b/servers/slapd/backglue.c index ee0c556281..94ce550662 100644 --- a/servers/slapd/backglue.c +++ b/servers/slapd/backglue.c @@ -1289,6 +1289,29 @@ glue_sub_add( BackendDB *be, int advert, int online ) return rc; } +static int +glue_access_allowed( + Operation *op, + Entry *e, + AttributeDescription *desc, + struct berval *val, + slap_access_t access, + AccessControlState *state, + slap_mask_t *maskp ) +{ + BackendDB *b0, *be = glue_back_select( op->o_bd, &e->e_nname ); + int rc; + + if ( be == NULL || be == op->o_bd || be->bd_info->bi_access_allowed == NULL ) + return SLAP_CB_CONTINUE; + + b0 = op->o_bd; + op->o_bd = be; + rc = be->bd_info->bi_access_allowed ( op, e, desc, val, access, state, maskp ); + op->o_bd = b0; + return rc; +} + int glue_sub_init() { @@ -1309,6 +1332,7 @@ glue_sub_init() glue.on_bi.bi_chk_controls = glue_chk_controls; glue.on_bi.bi_entry_get_rw = glue_entry_get_rw; glue.on_bi.bi_entry_release_rw = glue_entry_release_rw; + glue.on_bi.bi_access_allowed = glue_access_allowed; glue.on_response = glue_response;