Richard Jones wrote at 2005-8-24 16:11 +1000: >I can't instantiate out Product, which is a bit of a hurdle :) > >Our Product's registration looks like this (this function is invoked from the >Product's __init__.py): > >def initialize(context): > ''' Register the CGPublisher class ''' > context.registerClass( > CGPublisher, > permission=Perm.ADD_CGPUBLISHERS, > constructors = (addCGPublisherForm, addCGPublisher, addValues, > getMode), > icon='www/CGPublisher.gif', > visibility='Global', > ) > >Unfortunately, the addCGPublisherForm template can't access the "addValues" >function. The specific error I get is: > > Error Type: Unauthorized > Error Value: The container has no security assertions. Access to 'addValues' > of (App.ProductContext.__FactoryDispatcher__ object at 0xb61d30cc) denied.
Maybe, you do not honor the following requirement (documented in "App.ProductContext.ProductContext.registerClass"): constructors -- A list of constructor methods A method can me a callable object with a __name__ attribute giving the name the method should have in the product, or the method may be a tuple consisting of a name and a callable object. The method must be picklable. The first method will be used as the initial method called when creating an object. Does your "addValue" have a "__name__" attribute with value "addValue"? If so, you may want to analyse the "FactoryDispatcher" mentioned above. You get it (in an interactive interpreter) via app.manage_addProduct[<your Product>] In its class, you should find your contructors as well as permission attributes of the form "<constructor_name>__roles__". Apparently, "addValues__roles__" is missing (for whatever reason). -- Dieter _______________________________________________ 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 )