在带有CMIS的Alfresco文档中使用addToFolder和removeFromFolder

在带有CMIS的Alfresco文档中使用addToFolder和removeFromFolder,alfresco,cmis,apache-chemistry,Alfresco,Cmis,Apache Chemistry,我正在尝试使用document方法,并在Alfresco中使用java实现化学CMIS 我希望可以从多个用户空间访问文档,但不希望将每个文档复制到每个空间。文档由用户生成,此用户必须决定是否必须删除、移动、修改文档等。但是具有此空间读取权限的其他用户必须从其默认空间读取此文档 因此,我从其他用户那里执行myDocument.addToFolder(myNewUserSpace),运行正常,我可以毫无问题地访问它。这很好。 但是,如果由于某种原因,我想在myDocument中解除此myNewUse

我正在尝试使用document方法,并在Alfresco中使用java实现化学CMIS

我希望可以从多个用户空间访问文档,但不希望将每个文档复制到每个空间。文档由用户生成,此用户必须决定是否必须删除、移动、修改文档等。但是具有此空间读取权限的其他用户必须从其默认空间读取此文档

因此,我从其他用户那里执行
myDocument.addToFolder(myNewUserSpace)
,运行正常,我可以毫无问题地访问它。这很好。 但是,如果由于某种原因,我想在myDocument中解除此myNewUserSpace的关联(使用de myNewUserSpace专有用户,而不是myDocument用户),我会由于对myDocument的写入权限而收到一个错误

我不希望每个可以执行
addToFolder
的用户也获得写入权限

是否可以在不授予主用户空间的写入权限的情况下执行此操作


问候语。

权限可以从文件夹继承。Afaik addToFolder将您的spaceB添加为myDocument的第二个父级,但权限仅从spaceA继承,spaceA是myDocument的第一个父级。

您可以创建“公共”空间(每个人或一个或多个组都可以读取…)不,我不能。primaryFolder只能由一些小用户访问(读取),除了它的所有者之外,没有人可以在那里写入。是的,但是如果使用userB,我可以
myDocument.addParent(spaceB)
,我不也可以用这个用户执行
myDocument.removeFromFolder(spaceB)
?。现在,虽然我在primaryParent上向userB授予了写权限,但我不能这样做。没有其他方法可以做到这一点吗?您需要对spaceB&myDocument具有写入权限才能执行
myDocument.addParent(spaceB)
,但如果您需要对spaceB具有删除权限才能执行
myDocument.removeFromFolder(spaceB)
,那么在Alfresco中,您可以通过自定义代码实现使用ACE(行为或动态权限)-您仍然可以使用CMIS访问Alfresco,但您必须根据您的用例调整Alfresco的内部结构是的,当然。userB需要并且userB对spaceB具有删除权限。但要从userB
myDocument运行。removeFromFolder(spaceB)
Alfresco也要求获得primaryParent的删除/写入权限。这是我无法理解的。参考您的建议,您能否给我一些文档或示例,说明如何直接从Alfresco API执行操作?