On Jan 11, 2013, at 14:20 , Wichert Akkerman <[email protected]> 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._______________________________________________
Zope-CMF maillist - [email protected]
https://mail.zope.org/mailman/listinfo/zope-cmf
See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests