directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pierre-Arnaud Marcelot ...@marcelot.net>
Subject Re: [AdminPoint] Search operation
Date Fri, 17 Dec 2010 15:33:42 GMT
Agreed but I think we need to do this for each role.

On 17 déc. 2010, at 14:39, Emmanuel Lecharny wrote:

> Here is the description of a Search operation, and how it's handled by the AdministrativePoint
handler. The parts between >>>--- and ---<<< are pseudo code.
> 
> The base idea is to check if an entry selected as a candidate is up to date wrt the Administrative
perspective. If we grab an entry from the backend, and if there is an AP higher in the tree,
then we will check the entry seqNumber :
> - if there is no seqNumber, then the entry need to be updated
> - if there is a seqNumber which is below then its parent's AP, then the entry need to
be updated
> - otherwise, the entry is already up to date
> 
> An entry might have a seqNumber with no reference to any subentry, that just means the
entry is not part of any subentry's subtree.
> 
> One other thing : we will have to deal with entries only when they have been selected,
so the entry filtering should be done during the candidate evaluation. Here, we just update
the entry adding the references to the associated subentries (if any), and we will let the
ACI search filter to determinate if the entry is a valid candidate.
> 
> +--+
> |AP|
> +--+
> An AP is always searchable by anyone, if one can reach it (ie, no higher AP limit the
access to a parent entry)
> 
> There is nothing to do
> 
> +--------+
> |Subentry|
> +--------+
> Subentries are not returned to the user unless the Subentries control has been sent with
the request.
> A Subentry is always searchable by anyone, if one can reach it (ie, no higher AP limit
the access to a parent entry)
> 
> There is nothing to do
> 
> +-----+
> |Entry|
> +-----+
> 
> We have to check if the entry is up to date.
> 
> -------------------------------------------
> if entry has a parent AP
>  then take the entry seqNumber (entrySN) and the AP seqNumber (apSN)
> else
>  continue up the chain
> 
> if entry has a seqNumber
>  then
>    if the entrySN equals the apSN
>      then
>        continue up the chain
>      else
>        remove the entrySN
>        remove the entry references to Subentries
>        store the apSN in the entry
>        update the references to Subentries
>        store the entry
>        continue up the chain
>  else
>    add the apSeqNumber to the entry
>    update the references to Subentries
>    store the modified entry
>    continue up the chain
> -------------------------------------------
> 
> 
> -- 
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
> 


Mime
View raw message