Permissions 为非folderish对象分配自定义权限

Permissions 为非folderish对象分配自定义权限,permissions,plone,zope,Permissions,Plone,Zope,最近,我注意到并非所有内容类型的所有权限都可用,例如ATDocuments(可能是所有非folderish对象) 您可以通过ZMI的权限选项卡看到这一点: ATFolder:(所有可用权限) vs ATDocument:(只有几个权限) 自定义权限(通过ZCML定义)也可用于ATFolders,但不可用于ATDocuments(至少) 我最大的问题是,我无法通过工作流状态将缺少的权限设置为ATDocuments(实际上我可以,但似乎没有效果) 在深入研究代码之前,我有一个问题:有没有一种通用的方

最近,我注意到并非所有内容类型的所有权限都可用,例如ATDocuments(可能是所有非folderish对象)

您可以通过ZMI的权限选项卡看到这一点:

ATFolder:(所有可用权限)

vs

ATDocument:(只有几个权限)

自定义权限(通过ZCML定义)也可用于ATFolders,但不可用于ATDocuments(至少)

我最大的问题是,我无法通过工作流状态将缺少的权限设置为ATDocuments(实际上我可以,但似乎没有效果)

在深入研究代码之前,我有一个问题:有没有一种通用的方法可以让ATDocuments(或其他非folderish对象)使用自定义权限


顺便说一句:Plone 4.0.5会出现这种情况(我还没有检查其他版本)。

哪些权限?什么原因?请为我们提供更多上下文,以便我们提供帮助。对非folderish项的权限进行筛选,以仅显示将应用于该项上的方法的权限。所有权限(当然是工作流)都可以在该对象上设置。换句话说,您的自定义权限不会改变ATDocument行为本身的任何内容,并且不会显示。使用自定义权限,您试图实现什么?例如,我通过IBelowContentBody向ATDocument添加了一个Viewlet。在此Viewlet中,我只希望在授予自定义权限“display xyz”时显示某些信息。这应该通过ZMI(管理访问)或通过特定的工作流状态来完成。但是“display xyz”不会显示在manage_access中,当我通过工作流状态将其授予ATDocument时,它也没有任何效果。