我知道这个以及在Alfresco论坛上已多次解决的问题:
http://forums.alfresco.com/forum/developer-discussions/content-modeling/permissions-controlled-based-content-aspects-10022006 http://forums.alfresco.com/forum/developer-discussions/content-modeling/permission-aspect-05022008-1510
还有一些文件解决了这个问题:
http://wiki.alfresco.com/wiki/PermissionModelDTD
简而言之,如果应用了特定方面,我正尝试将现有权限组“CreateChildren”授予“Consumer”。这是我添加到我的自定义'permissionDefinitios.xml'(我省略了默认的XML内容):
<namespace uri="http://www.alfresco.org/model/mynamespace/1.0" prefix="my"/>
<permissionGroup name="CreateComments" requiresType="true" expose="false">
<includePermissionGroup permissionGroup="CreateChildren" type="sys:base" />
</permissionGroup>
<!-- The Consumer permission allows read to everything by default. -->
<permissionGroup name="Consumer" allowFullControl="false" expose="true" >
<includePermissionGroup type="sys:base" permissionGroup="Read"/>
<includePermissionGroup type="my:aspect" permissionGroup="CreateComment"/>
</permissionGroup>
此设置的结果是具有“使用者”角色的用户可以默认在任何站点中创建子级,无论是否在节点上应用了方面。我做错了吗?这是这种配置的预期结果吗?
由于我采用了'可拥有'的模型或示例,我想知道问题是否可能是我使用现有权限'CreateChildren'而不是完全定义自定义低级别权限和权限组。我也注意到有一个“可拥有”方面的服务,我是否也需要实现我的服务?我不是这样,因为这项服务看起来必须与政策实施,我认为我并不是我所关注的。
答案 0 :(得分:1)
您是否尝试过使用动态授权机构执行此检查?例如,在露天源中查看OwnerDynamicAuthority.java。使用这种方法,您只需检查节点是否具有方面,以及是否为该节点授予用户createChildren权限。