2013-07-08 70 views
0

我试图通过使用java的化学CMIS实现在Alfresco中使用文档方法addToFolderremoveFromFolder在使用CMIS的Alfresco文档中使用addToFolder和removeFromFolder

我想要从多个用户空间访问文档,但我不想将每个空间复制到每个空间。该文档由用户生成,并且该用户必须决定文档是否必须被删除,移动,修改等。但是具有对该空间的读取权限的其他用户必须从其默认空间读取该文档。

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

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

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

问候。

+0

您可以创建一个“公共”空间(每个人都可以阅读,或者由一个或多个团队阅读,...) – guy777

+0

不,我不能。 primaryFolder只能由一些小用户访问(读取),除了它的所有者之外,没有人可以写入。 – lodopidolo

回答

1

权限可以从文件夹继承。 Afaik addToFolder将您的spaceB添加为myDocument的secondaryParent,但权限仅从spaceA继承而来 - myDocument的primaryParent。

+0

是的,但如果用户B我可以'myDocument.addParent(spaceB)',我不能执行'myDocument.removeFromFolder(spaceB)'这个用户呢?现在我无法做到这一点,虽然我授予primaryParent上的userB的写入权限。没有其他办法可以做到吗? – lodopidolo

+0

您需要spaceB&myDocument的写入权限才能执行'myDocument.addParent(spaceB)',但afaik您需要删除SpaceB的权限以执行'myDocument.removeFromFolder(spaceB)' 有许多机会实现您的使用a在Alfresco中定制代码(行为或动态权限) - 您仍然可以使用CMIS访问Alfresco,但您必须调整Alfresco的内部使用案例 – alfrescian

+0

当然可以。 userB需求和userB具有删除spaceB的权限。但是从userB运行'myDocument.removeFromFolder(spaceB)'Alfresco也需要primaryParent的删除/写入权限。这是我无法理解的。 并提到你的建议,你可以给我一些关于如何从Alfresco API直接做的文档或例子吗? – lodopidolo