<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 11, 2013, at 14:20 , Wichert Akkerman &lt;<a href="mailto:wichert@wiggy.net">wichert@wiggy.net</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">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&nbsp;isConstructionAllowed method. Is there any reason _verifyObjectPaste check this as well? This should be simple to do:<div><br></div><div><font face="Menlo">&nbsp; &nbsp; portal_type = getattr(aq_base(obj), 'portal_type', None)<br>&nbsp; &nbsp; if portal_type:<br>&nbsp; &nbsp; &nbsp; &nbsp; fti = queryUtility(ITypeInformation, name=portal_type)<br>&nbsp; &nbsp; &nbsp; &nbsp; if fti is not None and not fti.isConstructionAllowed(self):<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; raise ValueError('You can not add the copied content here.')<br></font></div></div></blockquote><div><br></div>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.</div><div><br></div><div>Wichert.</div></body></html>