Re: [Zope-dev] Weird IndexableObjectWrapper + TopicIndex + aq_acquired interactions.
> When an acquisition wrapper is formed, there always must some context > (which is put into "aq_parent"). Well, as I can figure out this is the code that does the wrapping: /* Crap, we've got to construct a wrapper so we can use Wrapper_findattr */ UNLESS (self=newWrapper(self, Py_None, (PyTypeObject*)&Wrappertype)) return NULL; And that has None as the container/context. http://svn.zope.org/Zope/tags/Zope-2-8-1/lib/python/Acquisition/_Acquisition.c?rev=37855&view=markup ___ Zope-Dev maillist - Zope-Dev@zope.org 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 )
Re: [Zope-dev] Weird IndexableObjectWrapper + TopicIndex + aq_acquired interactions.
Lennart Regebro wrote at 2005-9-21 08:18 +0200: > ... >>What is the "aq_parent" that was used when wrapping the object? > >Eh, which one? The aq_chain of both the original aq wrapper and the >indexableobjectrapper is correct. The aq_chain of the "outside" >aq_wrapper is just []. Which seems expected, since aq_acquire >think it got an object without acquisition, right? Depending of what "" is. When an acquisition wrapper is formed, there always must some context (which is put into "aq_parent"). Almost all contexts contain a full acquisition chain. Maybe, we should wrap the "IndexableObjectWrapper" into the context of the catalog? > ... >> Where does the context come from used when "aq_acquire" acquisition >> wrapped the "IndexableObjectWrapper"? > >I don't think there is any context involved. When an acquisition wrapper is formed, there is a context -- the one put as "parent" argument of the acquisition wrapper constructor. >> The best way around such problems would probably by to make >> "IndexableObjectWrapper" a public class. > >"Public"? Yes, public (to let all security checks succeed). Of course, this means that someone with the permission to customize a catalog can obtain information he may not gain in a different way. -- Dieter ___ Zope-Dev maillist - Zope-Dev@zope.org 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 )
Re: [Zope-dev] Weird IndexableObjectWrapper + TopicIndex + aq_acquired interactions.
Dieter, my man! > >Now, in our case, the object is an IndexableObjectWrapper, wrapping an > >Acquisition wrapped object. So, aq_acquire will Acquicision wrap the > >IndexableObjectWrapper, with the result that the object being used now > >has no context! > > Really? No? >What is the "aq_parent" that was used when wrapping the object? Eh, which one? The aq_chain of both the original aq wrapper and the indexableobjectrapper is correct. The aq_chain of the "outside" aq_wrapper is just []. Which seems expected, since aq_acquire think it got an object without acquisition, right? >It is context of the "IndexableObjectWrapper". >The context of the indexable wrapped object does not change. Right... > >Then, it passes this to validate, who in turn passes it to allowed, > >who check that the object has the users user folder in it's context. > > > >And it hasn't, because it has no context. *blam* You get an > >AuthorizedError, and the object does not get indexed. > > Where does the context come from used when "aq_acquire" acquisition > wrapped the "IndexableObjectWrapper"? I don't think there is any context involved. > The best way around such problems would probably by to make > "IndexableObjectWrapper" a public class. "Public"? -- Lennart Regebro, Nuxeo http://www.nuxeo.com/ CPS Content Management http://www.cps-project.org/ ___ Zope-Dev maillist - Zope-Dev@zope.org 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 )
Re: [Zope-dev] Weird IndexableObjectWrapper + TopicIndex + aq_acquired interactions.
Lennart Regebro wrote at 2005-9-19 17:38 +0200: > ... >aq_acquire will, if the first parameter is not an AcquisitionWrapper, >and the third parameter is not None, wrap the object. > >Now, in our case, the object is an IndexableObjectWrapper, wrapping an >Acquisition wrapped object. So, aq_acquire will Acquicision wrap the >IndexableObjectWrapper, with the result that the object being used now >has no context! Really? What is the "aq_parent" that was used when wrapping the object? It is context of the "IndexableObjectWrapper". The context of the indexable wrapped object does not change. > ... >Then, it passes this to validate, who in turn passes it to allowed, >who check that the object has the users user folder in it's context. > >And it hasn't, because it has no context. *blam* You get an >AuthorizedError, and the object does not get indexed. Where does the context come from used when "aq_acquire" acquisition wrapped the "IndexableObjectWrapper"? The best way around such problems would probably by to make "IndexableObjectWrapper" a public class. -- Dieter ___ Zope-Dev maillist - Zope-Dev@zope.org 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 )