Alfresco权限查看节点内容列表但拒绝下载

时间:2015-06-29 08:39:56

标签: alfresco opencmis

是否可以在露天设置permissionsDefinition.xml,不允许GROUP_USERS下载文件但查看内容列表?

我试图在.xml文件中设置这样的配置。

这是Read权限组的原始定义:

<permissionGroup name="Read"  expose="true" allowFullControl="false">
    <includePermissionGroup type="sys:base" permissionGroup="ReadProperties"/>
    <includePermissionGroup type="sys:base" permissionGroup="ReadChildren"/>
    <includePermissionGroup type="sys:base" permissionGroup="ReadContent"/>
</permissionGroup>

所以简单的尝试就是删除ReadContent的权限,并将组更改为:

<permissionGroup name="Read"  expose="true" allowFullControl="false">
     <includePermissionGroup type="sys:base" permissionGroup="ReadProperties"/>
     <includePermissionGroup type="sys:base" permissionGroup="ReadChildren"/>
</permissionGroup>

根据这个,我创建了一个新的permissionGroup,如下所示:

<permissionGroup name="Reader" allowFullControl="false" expose="true" >
     <includePermissionGroup permissionGroup="Read" type="sys:base" />
     <includePermissionGroup type="sys:base" permissionGroup="ReadPermissions"/>      
 </permissionGroup>

以后这个小组被包含两次,一次在<permissionSet type="cm:content"/><permissionSet type="cm:folder"/>

为了测试这一点,我破坏了空间和父文件夹的继承权,并创建了一个新用户,该用户只有GROUP_USERS的成员且具有reader的权限。

实际问题

虽然我可以在查询结果中看到文档,但我无法使用session.getObject(id)获取该对象的实例。我总是得到CmisRuntimeException Message: Object Info is missing。只要我再次添加ReadContent权限,我就能再次通过Id获取对象。

因此,为了获得对象的实例,我需要允许ReadContent,即使我只想获取对象的实例以进行只读任务。

1 个答案:

答案 0 :(得分:2)

是的,根据文档here

  

修改访问控制时,请勿尝试拆分ReadProperties和ReadContent。这对搜索没有意义。节点及其所有属性(包括内容)将作为一个实体编制索引。无法对内容和属性的访问权限进行拆分评估。搜索必须应用这两个标准,以便不泄漏信息。其他服务(如复制)可能无法按预期运行,也可能产生奇数状态的节点。