2

我正在开发一个类似于“文档和媒体”的 Liferay Portlet,它连接到一个 Alfresco 存储库,并使用 apache chemistry open cmis API 与存储库项进行交互。

我几乎完成了通过 ACE 应用权限的工作,但我遇到了一个主要问题,即处理 alfresco 的“继承父空间权限”功能,该功能将父文件夹的属性传播给所有子文件夹。cmis 似乎不支持此功能,但我必须找到一种方法从 liferay 编辑此属性。

尽管没有任何可用的高级 API 来编辑此属性,但我想我可以通过使用 Alfresco 的 REST API 来解决问题。也许做这样的事情

但在这样做之前,我想确保没有其他方法可以做到这一点。我的意思是,这是这里缺少的一个非常重要的功能。如果我理解正确,如果您无法访问该属性,您可以选择:

  1. 禁用所有项目的继承,并失去继承和 ACL 传播的好处。

  2. 或者为所有空间启用继承,并且由于 ACL 的工作方式类似于授予规则(而不是限制规则),因此当您在存储库中更深入地导航时,子资源的限制总是更少。这样,您最终将所有受限资源都非常接近“公司主页”空间,并将高可用性资源置于存储库空间结构的非常深处。

  3. 或者启用继承,并且每次您想从子资源中删除单个权限时,从另一个较低级别的 API 调用 alfresco,禁用继承(并丢失所有传播的 ACE,无论是否需要),然后添加再次是必要的王牌。

这对我来说听起来不合理,所以我真的担心我在这里遗漏了一些东西,比如一个主要的高级 API 功能。有人可以告诉我我是否走在正确的轨道上,以及较低级别的 API 调用是否是唯一可用的选项?

4

1 回答 1

2

CMIS 不支持更改 ACL 继承设置。您可以确定继承了哪些 ACE,但不能打开和关闭继承。您必须编写自己的 Web 脚本并从您的 portlet 中调用它。

于 2012-08-22T15:56:34.447 回答