[Zope-CMF] Should object paste check FTI?

Wichert Akkerman wichert at wiggy.net
Fri Jan 11 13:29:05 UTC 2013


On Jan 11, 2013, at 14:20 , Wichert Akkerman <wichert at wiggy.net> wrote:

> PortalFolderBase overrides _verifyObjectPaste to add some extra checks on top of OFS's CopyContainer to check if content may be pasted: it copies the permission checking (why doesn't it call the base class for that?) and adds code to check for allowed types. There is one check missing there that is checked when creating new object: the FTI may block creation of new content as well through its isConstructionAllowed method. Is there any reason _verifyObjectPaste check this as well? This should be simple to do:
> 
>     portal_type = getattr(aq_base(obj), 'portal_type', None)
>     if portal_type:
>         fti = queryUtility(ITypeInformation, name=portal_type)
>         if fti is not None and not fti.isConstructionAllowed(self):
>             raise ValueError('You can not add the copied content here.')

The change is actually much simpler: replace the current workflow guard check with a call to objType.isConstructionAllowed(self). The FTI checks for workflow guards already so you won't need to duplicate that code anymore either.

Wichert.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.zope.org/pipermail/zope-cmf/attachments/20130111/fc1cc13c/attachment.html>


More information about the Zope-CMF mailing list