[Zope-dev] Acquisition Confusion :S

Chris Withers chrisw@nipltd.com
Mon, 14 Aug 2000 13:50:01 +0100


Michel Pelletier wrote:
> > A.B.C.D
> >
> > Look for D in C,
> > if it's not there, look in B
> > if it's not there, look in A
> 
> Someone correct me if I'm wrong here, but...
> 
> This is a linear search, which is the way acquisition *used* to work.

Which Zope version? ;-)

> Consider:
> 
> A /
>   B/
>     C/
> 
>     D
> 
> (A contains B, B contains C and D).
> 
> A.B.C.D
> 
> By your desire first look for D in C, then B and then A.  

Yup...

> But A says
> "You cannot see Ds".  Now, in the linear case, D is found in B, and A is
> never asked if this operation is permitted.  This is a security
> violation because root policies should be enforced unless they are
> explicitly overidden further down.

Hurm :S 
I didn't say I had the answers, I was just posing the question ;-)

> Further, it actually makes *more* sense because the

Well, maybe for security, but not for everyday use by people who have
trouble getting their heads around (((D o C) o (C o A)) o ((C o A) o (B
o A))) and the like...

> Not from the perspective of the way most development is done.  For
> example, when you want to have your children objects (whatever they may
> be) be acquireable, you don't need to think about the complexity of the
> situation, you just make sure you make them accessable in the context
> *of* you.

Hmmm, the thing which is bugging me is described quite nicely here:
http://www.zope.org/Wikis/zope-dev/AcquisitionFeedback

How can Steve achieve what he wants with the way acquisition currently
works?

cheers,

Chris