Okay... I've given this a few tries, but I can't quite seem to nail it down. I can get to the initial object, but anything deeper and I run into more access restrictions. It seems to be copying a reference rather than the material, so I might have to find a way to explicitly copy the data from the one object to the other as equals doesn't seem to be the way to do it. This is what I have thus far: --- import gnosis.xml.objectify as xp from AccessControl import ClassSecurityInfo from Acquisition import Implicit import Globals class Container(Implicit): security = ClassSecurityInfo() security.declareObjectPublic() security.setDefaultAccess('allow') security.declarePublic('xml_to_py') def xml_to_py(self): object = xp.XML_Objectify('/tmp/sample.xml') returning = object._PyObject ## Here is one idea I had, put it into a object like info and then return it, didn't work so well... info = [] transport = Container() info.append(returning) return (returning) def xml_to_py(self): Globals.InitializeClass(Container) xml_transport = Container() print dir(xml_transport.xml_to_py()) print dir(xml_transport.xml_to_py().UserRequest) return (xml_transport.xml_to_py().UserRequest) Globals.InitializeClass(Container) --- I've gone though the security documents, but I don't seem to be able to find anything special about unsecuring such a issue specific to this case. --- Chris McDonough <chrism@zope.com> wrote:
You need to make security declarations on the *returned object* (which in this case is "object._PyObject". I dont have any idea what this is but what you probably want to do is return an instance of a class which has security declarations that *wraps* this object's methods.
__________________________________________________ Do You Yahoo!? Sign up for SBC Yahoo! Dial - First Month Free http://sbc.yahoo.com