[z3-five] Re: another newbie cmf/plone integration question...
Rob Miller
ra at burningman.com
Sun Jun 12 22:28:13 CEST 2005
Lennart Regebro wrote:
> Which expression causes the error?
the following piece from a tal:define is the culprit:
Iterator python:modules['Products.CMFPlone'].IndexIterator;
the module access is what is being denied.
> Doesn't Plone use stadrad_template/macros/master? (if it does you can
> simply use CMFonFives template...)
plone has it's own main_template with a master macro, yes. but i AM
using CMFonFive's template, that's how i'm getting the error. as i
said, the problem seems to be related to the 'container' variable being
bound to an instance of SimpleViewClass; either the SimpleViewClass
instance needs to be wrapped in a Z2-style implicit acquisition context,
or the container binding needs to changed to actually be the container
within which the view is being rendered, i think, but i have no idea how
to go about accomplishing either of these.
-r
>
>
> On 6/11/05, Rob Miller <ra at burningman.com> wrote:
>
>>okay, making progress. i'm now able to create instances of my custom AT
>>objects using a z3 style addform which is autogenerated from the AT
>>schema... no need for portal_factory!
>>
>>the next hurdle is getting the addform to work within plone's
>>main_template system. things work well when i use a completely custom
>>five_template, but of course then the addform is missing all of the
>>typical site skinning. when i try to modify five_template so that it
>>delegates to main_template (as, for example, the five_template that
>>comes w/ CMFonFive does), then i get an unauthorized error related to a
>>module import:
>>
>>
>>
>>Traceback (innermost last):
>> Module ZPublisher.Publish, line 101, in publish
>> Module ZPublisher.mapply, line 88, in mapply
>> Module ZPublisher.Publish, line 39, in call_object
>> Module Products.Five.browserconfigure, line 628, in __call__
>> Module Shared.DC.Scripts.Bindings, line 306, in __call__
>> Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec
>> Module Products.PageTemplates.PageTemplateFile, line 106, in _exec
>> Module Products.PageTemplates.PageTemplate, line 96, in pt_render
>> - <ZopeTwoPageTemplateFile at 0x4860d20>
>> Module TAL.TALInterpreter, line 190, in __call__
>> Module TAL.TALInterpreter, line 234, in interpret
>> Module TAL.TALInterpreter, line 671, in do_useMacro
>> Module TAL.TALInterpreter, line 234, in interpret
>> Module TAL.TALInterpreter, line 671, in do_useMacro
>> Module TAL.TALInterpreter, line 234, in interpret
>> Module TAL.TALInterpreter, line 409, in do_optTag_tal
>> Module TAL.TALInterpreter, line 394, in do_optTag
>> Module TAL.TALInterpreter, line 389, in no_tag
>> Module TAL.TALInterpreter, line 234, in interpret
>> Module TAL.TALInterpreter, line 671, in do_useMacro
>> Module TAL.TALInterpreter, line 234, in interpret
>> Module TAL.TALInterpreter, line 464, in do_setGlobal_tal
>> Module Products.PageTemplates.TALES, line 221, in evaluate
>> - URL: index
>> - Line 3, Column 0
>> - Expression: <PythonExpr modules['Products.CMFPlone'].IndexIterator>
>> - Names:
>> {'container': <SimpleViewClass from
>>/Users/rob/devzope/Products/Fate/meta/add.pt instance at 3cf4d20>,
>> 'context': <ATBTreeFolder instance at 4a116e0>,
>> 'default': <Products.PageTemplates.TALES.Default instance at
>>0x21af1e8>,
>> 'here': <ATBTreeFolder instance at 4a116e0>,
>> 'loop': <SafeMapping instance at 3eebab0>,
>> 'modules': <Products.Five.TrustedExpression._ModuleImporter
>>instance at 0x340b8c8>,
>> 'nothing': None,
>> 'options': {'args': (<SimpleViewClass from
>>/Users/rob/devzope/Products/Fate/meta/add.pt instance at 3cf4d20>,)},
>> 'repeat': <SafeMapping instance at 3eebab0>,
>> 'request': <HTTPRequest,
>>URL=http://127.0.0.1:6080/openplans/projects/add_project>,
>> 'root': <Application instance at 4a16950>,
>> 'template': <ZopeTwoPageTemplateFile at 0x4860d20>,
>> 'traverse_subpath': [],
>> 'user': rob,
>> 'view': <SimpleViewClass from
>>/Users/rob/devzope/Products/Fate/meta/add.pt instance at 3cf4d20>,
>> 'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper
>>object at 0x4c51ef0>}
>> Module Products.PageTemplates.ZRPythonExpr, line 47, in __call__
>> - __traceback_info__: modules['Products.CMFPlone'].IndexIterator
>> Module Python expression
>>"modules['Products.CMFPlone'].IndexIterator", line 1, in <expression>
>> Module AccessControl.ZopeGuards, line 71, in guarded_getitem
>> Module AccessControl.ImplPython, line 407, in validate
>> Module Products.VerboseSecurity.VerboseSecurityPolicy, line 151, in
>>validate
>>Unauthorized: The container has no security assertions. Access to
>>'Products.CMFPlone' of (Products.Five.TrustedExpression._ModuleImporter
>>instance at 0x340b8c8) denied.
>>
>>
>>the problem seems to be that the security context is not set up
>>correctly within the addform's rendering environment. the container
>>seems to be a SimpleViewClass instance, where SimpleViewClass is
>>dynamically created via a call to
>>Products.Five.browserconfigure.makeClassForTemplate(). i'm guessing
>>that if i can acquisition wrap this SimpleViewClass instance somewhere
>>within my persistent object hierarchy then the security look-ups would
>>start working, but i can't find where the instance is actually created.
>> am i going in the right direction? i've dug through the other threads
>>re: CMF and Five integration, but i haven't seen anything dealing w/
>>this security context issue.
>>
>>thx for any help,
>>
>>-r
>>
>>p.s.: as i'm using plone, you've probably surmised that i'm using CMF
>>1.4, not 1.5.
>>
>>_______________________________________________
>>z3-five mailing list
>>z3-five at codespeak.net
>>http://codespeak.net/mailman/listinfo/z3-five
>>
>
>
>
More information about the z3-five
mailing list