我正在开发一个类似于“文档和媒体”的 liferay portlet,它连接到 Alfresco 存储库,并使用 apache Chemistry 开放 cmis API 与存储库项进行交互。
我几乎已经完成了通过 ACE 应用权限的工作,但我有一个主要问题,即处理 alfresco 的“继承父空间权限”功能,该功能将父文件夹的属性传播到所有子文件夹。看起来 cmis 不支持此功能,但我必须找到一种方法来从 liferay 编辑此属性。
虽然没有任何可用的高级 API 来编辑此属性,但我想我可以通过使用 Alfresco 的 REST API 来解决问题。 做类似 this 的事情也许吧。
但在这样做之前,我想确保没有其他方法可以做到这一点。我的意思是,这里缺少一个非常重要的功能。如果我理解正确的话,如果您无法访问该属性,您可以选择:
禁用所有项目的继承,并失去好处 来自继承和ACL传播。
或者启用 所有空间的继承,并且由于 ACL 的工作方式类似于授予规则 (并且不限制),让 child 的资源总是更少 当您在存储库中更深层次导航时会受到限制。这样,你 最终使所有受限资源非常接近 “公司之家”空间,并将高可用资源放在非常 在存储库空间结构的深处。
- 或者启用继承,并且每次您想要从某个权限中删除单个权限时 子资源,从另一个较低级别的 API 调用 alfresco, 禁用继承(并丢失所有传播的 ACE、所需的或 不是),然后再次添加必要的 A。
这对我来说听起来不合理,所以我真的担心我在这里遗漏了一些东西,比如主要的高级 API 功能。有人可以告诉我是否走在正确的轨道上,以及较低级别的 API 调用是否是唯一可用的选项?
最佳答案
CMIS 不支持更改 ACL 继承设置。您可以确定哪些 ACE 是继承的,但无法打开和关闭继承。您必须编写自己的 Web 脚本并从您的 portlet 调用它。
关于liferay - Open Cmis API无法访问Alfresco的 "Inherit Parent Space Permissions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12076776/