On 12/17/10 4:30 PM, Pierre-Arnaud Marcelot wrote:
Hi Emmanuel,
Comments inline below...
On 17 déc. 2010, at 14:37, Emmanuel Lecharny wrote:
Here is the description of an Add operation, and how it's handled by the AdministrativePoint
handler. The parts between>>>--- and ---<<< are pseudo code.
+--+
|AP|
+--+
We have to deal with three cases :
- the AP has a parent AP (IAP or SAP, it's irrelevant) and no subordinate IAP
- the AP has a parent AP but some subordinate IAPs
in this second case, we have to change the IAPs seqNumber to reflect the
change in entries relationship, recusively.
- the AP has no parent AP
The second case is the most complex.
-------------------------------------------
for each AP role
get a new seqNumber, add it to the AP(role)
update the AP(role) cache
if hasParentAP( AP(role) )
then
if hasSubordonateIAP( AP(role) )
then
for each subordinate IAP(role) (and their own subordinates)
modify the subordinate IAP(role) seqNumber with the new seqNumber
store the IAP(role)
done
done
continue down the chain
-------------------------------------------<<<
I disagree. In any case, you won't have any entry under the SAP.
So, you only need to add the AP to the cache.
Right ! Otherwise, if we add an AdministrativeRole to an entry, it's a
modify operation, not an add.
+--------+
|Subentry|
+--------+
We can't add a subentry if the immediate parent is not an AP and if the parent
AP does not have the same role (or of the parent is an IAP and there are no
higher parent with the same role).
Otherwise, adding a subentry is just a matter to update the parent's AP
seqNumber (and all the hierarchy up to the first SAP if it's an IAP)
As a subentry is only associated with one single role, we don't have to loop on
all the roles
This goes against what you previously stated in your introduction:
X.500 also says that a subentry can also be used to handle more than one
specific role, which is done by having more than one auxiliary ObjectClass
being added in the subentry.
We might want to loop on all roles, then.
Right..
I'll update the doco. I will also move it to the wiki.
Thanks Pierre-Arnaud !
--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com