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 [<self>]. 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/