dummy class security problem
This is from one of the dtml-tree HOWTOs on zope.org. It doesn't work with the new security mechanism. When I test it I get the traceback at the bottom of the mail. Any suggestions for making the 'name' property of _dummy 'public' to Zope? -- From the HOWTO: ExternalMethods/PythonMethods A simple example notes to self tree doesn't set sequence-item - also doesn't support 'mapping'. can't be used from pythonmethods, then.. can't create classes in PMs (?) class _dummy: def __init__(self, name): self.name=name def child_lookup(parent): c = [] for i in range(0,5): c.append(_dummy("%s.%d"%(parent, i))) return c The DTML Method <dtml-let name="0"> <dtml-tree id=name branches_expr="child_lookup(parent=name)"> <b><dtml-var name></b> </dtml-tree> </dtml-let> This, with a couple of nodes expanded, looks something like .. -- Traceback Zope Error Zope has encountered an error while publishing this resource. Unauthorized Sorry, a Zope error occurred. Traceback (innermost last): File /usr/local/Zope-2.3.0-linux2-x86/lib/python/ZPublisher/Publish.py, line 222, in publish_module File /usr/local/Zope-2.3.0-linux2-x86/lib/python/ZPublisher/Publish.py, line 187, in publish File /usr/local/Zope-2.3.0-linux2-x86/lib/python/ZPublisher/Publish.py, line 171, in publish File /usr/local/Zope-2.3.0-linux2-x86/lib/python/ZPublisher/mapply.py, line 160, in mapply (Object: test_child) File /usr/local/Zope-2.3.0-linux2-x86/lib/python/ZPublisher/Publish.py, line 112, in call_object (Object: test_child) File /usr/local/zope/lib/python/OFS/DTMLMethod.py, line 189, in __call__ (Object: test_child) File /usr/local/Zope-2.3.0-linux2- x86/lib/python/DocumentTemplate/DT_String.py, line 538, in __call__ (Object: test_child) File /usr/local/Zope-2.3.0-linux2-x86/lib/python/DocumentTemplate/DT_Let.py, line 147, in render (Object: name="0") File /usr/local/Zope-2.3.0-linux2-x86/lib/python/TreeDisplay/TreeTag.py, line 154, in render (Object: a tree tag) File /usr/local/Zope-2.3.0-linux2-x86/lib/python/TreeDisplay/TreeTag.py, line 260, in tpRender (Object: Traversable) File /usr/local/Zope-2.3.0-linux2-x86/lib/python/TreeDisplay/TreeTag.py, line 514, in tpRenderTABLE (Object: Traversable) (Info: (['AAAAAAAAIEk=', []], {'childless_decoration': '', 'id': 'name', 'branches_expr': <method Eval.eval of Eval instance at 8a998f8>, 'url': 'tpURL'}, [['AAAAAAAAIEk=', []]], [['AAAAAAAAIEk=', []]])) File /usr/local/Zope-2.3.0-linux2-x86/lib/python/TreeDisplay/TreeTag.py, line 315, in tpRenderTABLE File /usr/local/Zope-2.3.0-linux2-x86/lib/python/DocumentTemplate/VSEval.py, line 202, in eval (Object: child_lookup(parent=name)) File /usr/local/zope/lib/python/OFS/DTMLMethod.py, line 261, in validate (Object: test_child) File /usr/local/Zope-2.3.0-linux2- x86/lib/python/AccessControl/SecurityManager.py, line 144, in validate File /usr/local/Zope-2.3.0-linux2- x86/lib/python/AccessControl/ZopeSecurityPolicy.py, line 168, in validate Unauthorized: name
magnus/Websys@websys.no wrote:
of the mail. Any suggestions for making the 'name' property of _dummy 'public' to Zope?
Try changing :
class _dummy: def __init__(self, name): self.name=name
to: class _dummy: def __init__(self, name): self._name=_name name__roles__=None def name(self): return _name cheers, Chris
On Wed, 7 Mar 2001, Chris Withers wrote:
def name(self): return _name
return self._name Oleg. ---- Oleg Broytmann http://www.zope.org/Members/phd/ phd@phd.pp.ru Programmers don't die, they just GOSUB without RETURN.
Oleg Broytmann wrote:
On Wed, 7 Mar 2001, Chris Withers wrote:
def name(self): return _name
return self._name
Thankyou :-) Rumour has it that one time, long ago, I not only had a brain but could ocassionally use it and could even type properly... Chris
participants (3)
-
Chris Withers -
magnus/Websys@websys.no -
Oleg Broytmann