Florent Guillaume wrote:
Paul Winkler wrote:
On Fri, Dec 02, 2005 at 04:12:01PM +0100, Jean-Marc Orliaguet wrote:
does zope2 do an access control based on acquisition for public methods, that would be a waste of resources since the answer is always "yes, granted" ?
Well, the thing is, the declaration that makes the method public *has no effect* unless your class participates in acquisition.
That's not true. The objects of this class will be perfectly accessible to a restricted user:
from AccessControl import ClassSecurityInfo class MyStuff(object): security = ClassSecurityInfo() security.declareObjectPublic() security.setDefaultAccess('allow') def foo(self): return 'bar' InitializeClass(MyStuff)
In Zope 2.7.8 I get a segmentation fault when I try to do the above; I also have the following code that manages this for any class (to avoid having to do that for every single class): def _ZopifyClass(a_class): a_class.security = ClassSecurityInfo() a_class.security.declareObjectPublic() # Segmentation fault security.setDefaultAccess('allow') InitializeClass(a_class) I cannot swithc to Zope 2.8 because my code runs in PLone 2.05 and it does not work with Zope 2.8. The segmentation fault occurs in the declareObjectPublic() statement. Is there a fix for the Zope 2.7 to this problem? Thanks. /dario -- -- ------------------------------------------------------------------- Dario Lopez-Kästen, IT Systems & Services Chalmers University of Tech. Lyrics applied to programming & application design: "emancipate yourself from mental slavery" - redemption song, b. marley