[Zope] Re: Python Classes and Zope.

Dario Lopez-Kästen dario at ita.chalmers.se
Tue Dec 6 06:48:01 EST 2005


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



More information about the Zope mailing list