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] Move operation
Date Fri, 17 Dec 2010 15:45:03 GMT

On 17 déc. 2010, at 15:41, Emmanuel Lecharny wrote:

> The move operation has a limited impact if we move the AP, except if we move an IAP.
For subentries and entreeies, it's slightly more complex
> 
> +--+
> |AP|
> +--+
> If the AP is an IAP, we have to check that the new position is valid. If so, we can move
it. Then, as the the new parent AP may have changed, we have to modify the IAP seqNumber so
that the underlying entries can be updated later. This has to be done for all the IAP descendants
too.
> 
> >>>-------------------------------------------
> if AP is an IAP
>  then
>    check that the new position is valid
>    if the parentAP is not the same
>      then
>        get a new seqNumber
>        update the IAP with the new seqNumber
> 
>        for each IAP in the IAP descendant do
>          update the IAP with the new seqNumber
>        done
> 
> continue down the chain
> -------------------------------------------<<<

Agreed.


> +--------+
> |Subentry|
> +--------+
> Moving a subentry implies we update the old parentAP and the new one. Of course, we have
to check first that the changed AP are not inconsistent after the change.
> 
> >>>-------------------------------------------
> get a new seqNumber
> 
> update the old parentAP with the seqNumber (and all the IAP descendants)
> update the new parentAP with the seqNumber (and all the IAP descendants)
> 
> continue down the chain
> 
> -------------------------------------------<<<

Agreed.


> +-----+
> |Entry|
> +-----+
> If we move en entry within the same area, we don't have anything to do except if the
entry is not up to date, and then we proceed as we do for a search operation. Otherwise, we
update the entry like if it was a add.
> This has to be done for each possible roles.
> 
> >>>-------------------------------------------
> for each role
>  get the old parentAP
>  get the new parentAP
> 
>  if the entry is not up to date
>    then update the entry
> done
> 
> continue down the chain
> -------------------------------------------<<<

I disagree.

Since the entry has moved, some subtree specifications of some subentries may not be matching
anymore this entry.
Thus, I think we need to invalidate the previously run evaluations by removing all seqNumbers
for all roles, forcing a re-evaluation of the entry next time.


> 
> 
> -- 
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
> 


Mime
View raw message