[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