Hi Charlie!
Charlie Clark wrote: > Am 02.12.2009, 20:51 Uhr, schrieb yuppie <y.2...@wcm-solutions.de>: > >> -1 >> The real issue here is the fact that the permission argument of the >> adapter directive is not supported in Zope 2. Otherwise we could simply >> use this: >> <adapter >> name="myproduct.content_type_factory" >> factory=".myproduct.MyAddView" >> permission="cmf.AddPortalContent" >> /> >> Using the class directive instead is just a workaround for a generic >> problem that needs a generic solution, not a new addView directive. > > I have to agree with you on that. But the current solution remains clunky. > Having initially been against it I think it would be easier on the eye to > have the security declaration (I'm assuming this would work for subclasses > where it can be overwritten if needs be) in ContentAddFormBase until the > permissions directive is supported. It was only from working with the new > add form that I realised how little needs to be done to work with this. +1 Actually it would make sense to get the permission checks in sync with the _checkAllowed method used by add actions. And _checkAllowed has a hardcoded check for AddPortalContent. So it is indeed superfluous to configure the AddPortalContent permission for each add view in ZCML. And the __call__ method of ContentAddFormBase seems to be a good place for checking the AddPortalContent permission *and* the isConstructionAllowed method. >> I currently use method aliases defined for the container to customize >> the names shown in the URL. But that's not perfect because you can't >> define the aliases together with the portal type and you have to define >> them for each container type used. > > I'm not sure I understand what you mean by that - you have a situation > where string:${folder_url}/++add++${object_id} needs changing? Here is an example: <object name="Document"> <property name="add_view_expr">string:${folder_url}/newDoc</property> </object> <object name="Folder"> <alias from="newDoc" to="++add++Document"/> </object> >> If you have a better idea, please let me know. > > I think that we could work with a sensible default which might be > overwritable in the aliases? The problem is: The indirection has to be done on container level, but it would be clearer to set the alias in the type info of the new object. Cheers, Yuppie _______________________________________________ Zope-CMF maillist - Zope-CMF@zope.org https://mail.zope.org/mailman/listinfo/zope-cmf See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests