如何在 Alfresco 中应用模型级别的权限

How to apply permissions on model level in Alfresco

我使用的是 Alfresco 社区版 6.2.0。我需要知道,是否有任何方法可以对模型或自定义类型本身应用安全性,以便我可以限制用户使用该特定自定义类型。我来自 FileNet 背景,在 FileNet 中,我们可以在 Document Class 级别应用安全性,在 Alfresco 中是否可能发生同样的事情?我找不到任何相关的文档,所以请帮助我。

很遗憾,没有。 不过,有一些优雅的方法可以做到这一点:

  • 将所有特定自定义类型置于同一个 folder/file 计划下。然后设置权限并让继承完成它的工作
  • 使用 NodeBehaviours 将您的安全应用于事务中的“create/update”事件

除此之外,您可以开发自己的权限,但这是一个更严重的自定义。

除了@lista 的建议之外,还请查看 Alfresco Hub 上关于动态权限的讨论:Custom site role allowing users to read only specific documents inside the site。动态权限在搜索期间可能会更昂贵,但避免在每个节点上设置显式 ACL,并且允许稍后更改对文档类型的权限。因此,这取决于您的用例和要求,哪个更好。如果您没有非常大的系统,我更喜欢自定义 DynamicAuthority。

无法在模型级别设置权限,只能在节点级别设置权限。

但是您可以在模型级别创建自定义权限集,通过利用 Java api 可以在共享和回购中使用。

 <bean id="myModule_permissionBootstrap" parent="permissionModelBootstrap">
      <property name="model" value="alfresco/module/myModuleId/myPermissionDefinitions.xml"/>
    </bean>

https://docs.alfresco.com/5.0/concepts/dev-extensions-modules-custom-permission-model.html https://docs.alfresco.com/5.0/concepts/secur-permissions.html org.alfresco.repo.node.NodeServicePolicies

beforeAddAspect
beforeArchiveNode
beforeCreateNode
beforeCreateStore
beforeDeleteAssociation
beforeDeleteChildAssociation
beforeDeleteNode
beforeMoveNode
beforeRemoveAspect
beforeSetNodeType
beforeUpdateNode
onAddAspect
onCreateAssociation
onCreateChildAssociation
onCreateNode
onCreateStore
onDeleteAssociation
onDeleteChildAssociation
onDeleteNode
onMoveNode
onRemoveAspect
onSetNodeType
onUpdateNode
onUpdateProperties