setting the client namespace for a DTML Method
[ This message never made it to the list somehow, reposting now... ] X-From-Line: nobody Thu Mar 16 12:09:02 2000 X-Face: QmL':f1ZwaRtW?E^9)c*r4r[',ky+1<e`?s,[rt'*s@6awNjJQ?,s8ArMu7TD"pJW(KI!I% BY-c##<^KlGL@'#YWptcmBOP0\1\y/$(OO*3-V~>8?<2\;7#Dwh,9ut}(dpQCo}ydCZZ~,? X-Attribution: gyst Mime-Version: 1.0 (generated by tm-edit 7.108) Content-Type: text/plain; charset=US-ASCII Message-ID: <87n1nz894w.fsf@wiz.wiz> X-Mailer: Gnus v5.5/XEmacs 20.4 - "Emerald" Lines: 56 Xref: wiz.wiz sent-mail:4525 X-Gnus-Article-Number: 4525 Thu Mar 16 12:09:02 2000 When Zen borders on Kamikaze..... DTML Document --> product method --> DTML method I've been banging my head against this for 4 days in a row now. I want to call a DTML method, via a product method, from a DTML document, but I don't succeed in setting the client namespace for the DTML method to the original DTML Document's namespace. I'd appreciate any help! I have a DTML document. It has a valid aq_parent. From this DTML document, I'm calling a product method, passing the DTML documents's aq_parent as an argument: <dtml-var "NFGnavCore.aqqy(aq_parent)"> This method has access to the aq_parent object all right, tested OK. Next, the DTML method is called from the product python method and the original aq_parent object is given as the new acquisition context: def aqqy(self, context=None): """ some test method""" retval= "Hi! I'm the aqqy method, called with context.id <b>%s</b>" % context.id return retval + self.aqqy_helper(client=context) The DTML method 'aqqy_helper' is called all right, but has no access to the context object passed in. Any attempt to access objects that should be in the acquired namespace, for example: My aq_parent id= <dtml-var "aq_parent.id"> results in an error message: You are not authorized to access aq_parent. Which, if I'm not mistaken, is caused by the validate routine called from OFS/DTMLMethod.py as documented in 'oldvalidate()': if inst is parent: raise 'Unauthorized', ( 'You are not authorized to access <em>%s</em>.' % name) So what am I doing wrong, and what is the right way to call DTML methods from product methods? :*CU# -- *** Guido A.J. Stevens *** mailto:gyst@nfg.nl *** *** Net Facilities Group *** tel:+31.43.3618933 *** *** http://www.nfg.nl *** fax:+31.43.3560502 *** By 2003, most industrial countries wil log and analyze the movements of every citizen. [Pearson, ISBN 0-02-862089-5, p.62]
participants (1)
-
gyst@nfg.nl