directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <elecha...@gmail.com>
Subject [AdminPoint] Search operation
Date Fri, 17 Dec 2010 13:39:27 GMT
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