使用 CMIS 在 Alfresco 文档中使用 addToFolder 和 removeFromFolder
Posted
技术标签:
【中文标题】使用 CMIS 在 Alfresco 文档中使用 addToFolder 和 removeFromFolder【英文标题】:Using addToFolder and removeFromFolder in Alfresco document with CMIS 【发布时间】:2013-07-08 11:31:26 【问题描述】:我正在尝试通过 java 的化学 CMIS 实现在 Alfresco 中使用文档方法 addToFolder
和 removeFromFolder
。
我想从多个用户空间访问一个文档,但我不想将每个文档复制到每个空间。文档是由用户生成的,该用户必须决定是否必须删除、移动、修改文档等。但是对该空间具有读取权限的其他用户必须从其默认空间读取该文档。
所以,我从其他用户执行myDocument.addToFolder(myNewUserSpace)
,这运行正常,我可以毫无问题地访问它。这很好。
但是如果由于某种原因,我想在 myDocument 中取消关联这个 myNewUserSpace(使用 de myNewUserSpace 专有用户,而不是 myDocument 用户),由于对 myDocument 的写入权限,我会收到错误。
我不希望每个可以执行addToFolder
的用户也获得写入权限。
是否可以在不授予主用户空间写入权限的情况下执行此操作?
您好。
【问题讨论】:
您可以创建一个“公共”空间(每个人都可以阅读,或者一个或多个小组可以阅读,...) 不,我不能。 primaryFolder 只能被一些小用户访问(读取),除了它的所有者之外没有人可以在那里写入。 【参考方案1】:权限可以从文件夹继承。 Afaik addToFolder 将您的 spaceB 添加为 myDocument 的 secondaryParent,但权限仅继承自 spaceA - myDocument 的 primaryParent。
【讨论】:
是的,但是如果使用 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 做的文档或示例吗?以上是关于使用 CMIS 在 Alfresco 文档中使用 addToFolder 和 removeFromFolder的主要内容,如果未能解决你的问题,请参考以下文章
使用 DotCMIS dll 查看 alfresco 中所有工作区的步骤
如何使用 Alfresco Rest API 在文档中上传文件夹和子文件夹?
Alfresco 附加的 word 文档无法使用 ms office 在线编辑
使用 alfresco search.luceneSearch 或 search.lib.js 使用特定类别名称读取所有文档