Just added __allow_access_to_unprotected_subobjects__=1 as an attribute of my class defined in an external python script and it works fine.


Thanks Tino!


Tino Wildenhain wrote:

Hi,

Am Montag, den 11.04.2005, 14:08 +0300 schrieb Vangelis Mihalopoulos:


Andreas Jung wrote:



You should *not* define classes inside PythonScripts. PythonScripts are stricted
and don't provide the full functionality. Either use filesystem based code (Zope
Product) or use simple Python datatypes as dictionaries in this case.


An External Method behaves exactly the same. I have not yet involved in writting even the simpler Product and i will not do it now for such a trivial issue.

I tried to return a dictionary,
----- return {'a':1, 'b':2, 'c':3} ------
but it the DTML Doc fails with a KeyError.



Use a dict and if you really need DTML... see the keyword "mapping" for <dtml-with> and <dtml-in> tags.

If you want to return custom class objects into untrusted
code (e.g. from external methods) you need to set security
declarations on them - at least add the attribute:

__allow_access_to_unprotected_subobjects=1

(from top of head - just grep -r zopes source
for the actual name)

HTH
Tino


_______________________________________________
Zope maillist - Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to