Re: ZClass problem in 2.8 (Was: Re: Upcoming Zope 2.8 release)

Dieter Maurer <[email protected]> Wed, 8 Jun 2005 19:29:34 +0200
Newsgroups gmane.comp.web.zope.devel,gmane.comp.web.zope.coders
Message-ID <[email protected]>
John Barratt wrote at 2005-6-7 10:08 +1000:
> ...
> From a bit of digging through the code it seems there is a difference 
>comes about in the call on line 166 of AccessControl.User inside 
>_check_context :
>
>     return object.aq_inContextOf(context, 1)
>
>In Zope 2.8 it returns 0, in 2.76 it returns 1

Looks like an acquisition bug:

      obj.aq_inContextOf(context, 1) is recursively defined by:

	  True, if "obj.aq_base == context.aq_base"
	  or "container(obj) is not None"
	  and "container(obj).aq_inContextOf(context, 1)"

	  where "container(obj)" is "aq_parent(aq_inner(obj))"
	  which is the container containing "obj".

which is equivalent to (resolving the recursing):

      obj.aq_inContextOf(context, 1)
      iff for some (hierarchie) ancestor "a" of obj,
      "a.aq_base == context.aq_base".

Given this definition, you can check which implementation
is wrong and file a bug report.

-- 
Dieter
_______________________________________________
Zope-Dev maillist  -  [email protected]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )