[Zope-dev] Security declarations vanish over time?!

Chris Withers chris at simplistix.co.uk
Thu Mar 18 15:27:28 EST 2004


Hi there,

I have a little help class:

class NamesProxy:

     __allow_access_to_unprotected_subobjects__=1

     def __init__(self,names):
         self.names=names

     def __getitem__(self,item):
         return self.names[item]

     def __len__(self):
         return len(self.names)

...which lets me do batches over .objectValues() of BTreeFolders without ZOpe's 
security whining.

Any, so that I can do:

<tal:x define="Batch       nocall:modules/ZTUtils/Batch;
                NamesProxy  nocall:modules/Products/MyProduct/NamesProxy;">

...I have the following in MyProduct's __init__.py:

from AccessControl import ModuleSecurityInfo
ModuleSecurityInfo('Products').declarePublic('MyProduct')
security = ModuleSecurityInfo()
# make NamesProxy usable from PageTemplates
from namesproxy import NamesProxy
security.declarePublic('NamesProxy')
security.apply(globals())

...all well and good, yes?

Okay, now it gets weird :-S

This works fine for a while (as in period of time) and then you start getting 
errors of the following sort:

   File /usr/local/zope/2.6.1/lib/python/Products/PageTemplates/TALES.py, line 
217, in evaluate
   File /usr/local/zope/2.6.1/lib/python/Products/PageTemplates/Expressions.py, 
line 206, in __call__
   File /usr/local/zope/2.6.1/lib/python/Products/PageTemplates/Expressions.py, 
line 194, in _eval
   File /usr/local/zope/2.6.1/lib/python/Products/PageTemplates/Expressions.py, 
line 150, in _eval
     (Info: modules)
   File /usr/local/zope/2.6.1/lib/python/Products/PageTemplates/Expressions.py, 
line 346, in restrictedTraverse
     (Object: Products.ScreenDigest)
     (Info: {'path': ['Products', 'MyProduct', 'NamesProxy'], 
'TraversalRequestNameStack': []})
Unauthorized: You are not allowed to access NamesProxy in this context

What gives?

Weirder still, this can be fixed by restarting Zope... until the next time it 
starts doing it :-(

Any ideas?

Chris

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk




More information about the Zope-Dev mailing list