[Grok-dev] megrok.resourcelibrary, zope.app.homefolder -> TraversalError
Christian Klinger
cklinger at novareto.de
Fri Dec 12 04:53:10 EST 2008
Hi agin,
i found the issue myself.
I called the uvc.img with:
** context/@@/uvcresource/image.gif **
now i use
application_url/@@/uvcresource/image.gif
This works.
- Christian
> Hi
>
> i try to use in a grok application the two libraries
> megrok.resourcelibrary [1] and zope.app.homefolder [2].
>
> I get my resource files with help of the megrok.resourcelibrary.
> I included this in my *Master Macro*.
>
>
> This works pretty nice so far. But when I try to access
> my resources in the context of an instance of zope.app.homefolder
> i got an error. You can see the traceback at the end of this post.
>
> I access the homefolder thourgh an traverse method of my Application.
>
> def traverse(self, name):
> """ Custom Travers Method For the HomeFolders """
> if name=="members":
> utility = getUtility(IHomeFolderManager)
> return utility.homeFolderBase
>
> The homeFolderBase is a grok.Container. This works if i not work with
> macros in the grok.View for this container.
>
> I hope you have an idea for me.
>
> Thanks for your help
>
> -Christian
>
> [1] http://pypi.python.org/pypi/megrok.resourcelibrary/0.9.2
> [2] http://pypi.python.org/pypi/zope.app.homefolder/3.4.0
>
> Traceback:
>
> 2008-12-11T16:11:13 ERROR SiteError
> http://localhost:8080/extranet/members/zope.manager/@@index
> Traceback (most recent call last):
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.publisher-3.4.6-py2.4.egg/zope/publisher/publish.py",
> line 133, in publish
> result = publication.callObject(request, obj)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/grok-0.14-py2.4.egg/grok/publication.py",
> line 45, in callObject
> return super(ZopePublicationSansProxy, self).callObject(request, ob)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.app.publication-3.4.3-py2.4.egg/zope/app/publication/zopepublication.py",
> line 167, in callObject
> return mapply(ob, request.getPositionalArguments(), request)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.publisher-3.4.6-py2.4.egg/zope/publisher/publish.py",
> line 108, in mapply
> return debug_call(obj, args)
> - __traceback_info__: <uvcsite.homefolder.homefolder.HomeFolderIndex
> object at 0x29535f0>
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.publisher-3.4.6-py2.4.egg/zope/publisher/publish.py",
> line 114, in debug_call
> return obj(*args)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/grokcore.view-1.1-py2.4.egg/grokcore/view/components.py",
> line 59, in __call__
> return self._render_template()
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/grokcore.view-1.1-py2.4.egg/grokcore/view/components.py",
> line 63, in _render_template
> return self.template.render(self)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/grokcore.view-1.1-py2.4.egg/grokcore/view/components.py",
> line 219, in render
> return template.pt_render(namespace)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.pagetemplate-3.4.0-py2.4.egg/zope/pagetemplate/pagetemplate.py",
> line 115, in pt_render
> strictinsert=0, sourceAnnotations=sourceAnnotations)()
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 271, in __call__
> self.interpret(self.program)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 346, in interpret
> handlers[opcode](self, args)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 891, in do_useMacro
> self.interpret(macro)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 346, in interpret
> handlers[opcode](self, args)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 536, in do_optTag_tal
> self.do_optTag(stuff)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 521, in do_optTag
> return self.no_tag(start, program)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 516, in no_tag
> self.interpret(program)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 346, in interpret
> handlers[opcode](self, args)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 745, in do_insertStructure_tal
> structure = self.engine.evaluateStructure(expr)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tales-3.4.0-py2.4.egg/zope/tales/tales.py",
> line 696, in evaluate
> return expression(self)
> -
> /Users/cklinger/work/uvc/uvcsite/src/uvcsite/skin/skin_templates/uvcsitemacros.pt
> - Line 24, Column 7
> - Expression: <StringExpr u'uvcsite.logo'>
> - Names:
> {'args': (),
> 'context': <uvcsite.homefolder.homefolder.HomeFolder object at
> 0x2b792b0>,
> 'default': <object object at 0x44550>,
> 'loop': {},
> 'nothing': None,
> 'options': {},
> 'repeat': {},
> 'request': <zc.resourcelibrary.publication.Request instance
> URL=http://localhost:8080/extranet/members/zope.manager/@@index>,
> 'static': <grokcore.view.components.DirectoryResource object at
> 0x29538f0>,
> 'template': <grokcore.view.components.TrustedFilePageTemplate
> object at 0x28d5870>,
> 'view': <uvcsite.homefolder.homefolder.HomeFolderIndex object at
> 0x29535f0>}
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.contentprovider-3.4.0-py2.4.egg/zope/contentprovider/tales.py",
> line 80, in __call__
> return provider.render()
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/grok-0.14-py2.4.egg/grok/components.py",
> line 365, in render
> return u'\n'.join([viewlet.render() for viewlet in self.viewlets])
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/grok-0.14-py2.4.egg/grok/components.py",
> line 402, in render
> return self.template.render(self)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/grokcore.view-1.1-py2.4.egg/grokcore/view/components.py",
> line 219, in render
> return template.pt_render(namespace)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.pagetemplate-3.4.0-py2.4.egg/zope/pagetemplate/pagetemplate.py",
> line 115, in pt_render
> strictinsert=0, sourceAnnotations=sourceAnnotations)()
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 271, in __call__
> self.interpret(self.program)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 346, in interpret
> handlers[opcode](self, args)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 379, in do_startEndTag
> self.do_startTag(stuff, self.endsep, self.endlen)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 408, in do_startTag
> rendered = attrAction(self, item)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tal-3.4.1-py2.4.egg/zope/tal/talinterpreter.py",
> line 485, in attrAction_tal
> evalue = self.engine.evaluateText(item[3])
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tales-3.4.0-py2.4.egg/zope/tales/tales.py",
> line 704, in evaluateText
> text = self.evaluate(expr)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tales-3.4.0-py2.4.egg/zope/tales/tales.py",
> line 696, in evaluate
> return expression(self)
> -
> /Users/cklinger/work/uvc/uvcsite/src/uvcsite/viewlets/viewlets_templates/image.pt
> - Line 2, Column 2
> - Expression: <PathExpr standard:u'context/@@/uvcresources/uvc.png'>
> - Names:
> {'args': (),
> 'context': <uvcsite.homefolder.homefolder.HomeFolder object at
> 0x2b792b0>,
> 'default': <object object at 0x44550>,
> 'loop': {},
> 'nothing': None,
> 'options': {},
> 'repeat': {},
> 'request': <zc.resourcelibrary.publication.Request instance
> URL=http://localhost:8080/extranet/members/zope.manager/@@index>,
> 'static': <grokcore.view.components.DirectoryResource object at
> 0x2b7e430>,
> 'template': <grokcore.view.components.TrustedFilePageTemplate
> object at 0x293c310>,
> 'view': <uvcsite.homefolder.homefolder.HomeFolderIndex object at
> 0x29535f0>,
> 'viewlet': <uvcsite.viewlets.viewlets.Image object at 0x2b7e3d0>,
> 'viewletmanager': <uvcsite.viewlets.managers.Logo object at
> 0x2b7e3b0>}
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tales-3.4.0-py2.4.egg/zope/tales/expressions.py",
> line 217, in __call__
> return self._eval(econtext)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tales-3.4.0-py2.4.egg/zope/tales/expressions.py",
> line 194, in _eval
> ob = self._subexprs[-1](econtext)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.tales-3.4.0-py2.4.egg/zope/tales/expressions.py",
> line 124, in _eval
> ob = self._traverser(ob, element, econtext)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.app.pagetemplate-3.4.1-py2.4.egg/zope/app/pagetemplate/engine.py",
> line 68, in __call__
> request=request)
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.traversing-3.4.1-py2.4.egg/zope/traversing/adapters.py",
> line 164, in traversePathElement
> return traversable.traverse(nm, further_path)
> - __traceback_info__:
> ({'zope.app.security.AnnotationPrincipalRoleManager':
> <zope.securitypolicy.securitymap.PersistentSecurityMap object at
> 0x2b793b0>}, 'uvcresources')
> File
> "/Users/cklinger/work/uvc/uvcsite/eggs/zope.traversing-3.4.1-py2.4.egg/zope/traversing/adapters.py",
> line 52, in traverse
> raise TraversalError(subject, name)
> - __traceback_info__:
> ({'zope.app.security.AnnotationPrincipalRoleManager':
> <zope.securitypolicy.securitymap.PersistentSecurityMap object at
> 0x2b793b0>}, 'uvcresources', ['uvc.png'])
> TraversalError: ({'zope.app.security.AnnotationPrincipalRoleManager':
> <zope.securitypolicy.securitymap.PersistentSecurityMap object at
> 0x2b793b0>}, 'uvcresources')
> ^C
More information about the Grok-dev
mailing list