Alfresco权限取决于文档当前是否是工作流的一部分

时间:2017-01-20 11:28:58

标签: permissions alfresco activiti

开箱即用,Alfresco用户可以根据以下内容阅读文档:

  • 文档的权限
  • 用户的角色
  • 用户的群组
  • 用户是否拥有该文档
  • 也许我忘记了其他一些因素?

现在,我想添加一个新因素:文档当前是否属于工作流程

Alfresco的permissionDefinitions.xml允许我根据authorities定义权限,例如ROLE_LOCK_OWNER等,但它似乎不是添加权限条件的正确位置。

我想我必须编写一些Java源代码,但我不确定哪些类对此负责,以及是否有 Alfresco方式来自定义它们?

1 个答案:

答案 0 :(得分:2)

因此,我假设您希望以某种方式将附加到工作流的节点具有不同的访问权限?您需要考虑所有要公开的UI和协议中所需的行为(例如,共享,WebDAV,CIFS,FTP等)。

如果要在节点上设置权限,可以通过JavaScript和Java(请参阅http://docs.alfresco.com/5.2/references/API-JS-setPermission.htmlhttp://docs.alfresco.com/5.2/references/dev-services-permission.html)来实现。正如其中一条评论中所述,您还可以通过引用JavaScript(http://docs.alfresco.com/5.2/references/API-JS-ScriptNode.html)或Java中的activeWorkflows属性来获取节点上活动工作流的数量

根据具体情况,我可能会以不同的方式实现这一点,但如果您只想更改权限,则可以通过简单的javascript调用在工作流的开头和结尾更新它。唯一不好的是它没有考虑到取消工作流程。您还可以在附加的方面创建策略/行为,甚至可以根据activeWorkflows值运行更新内容的规则或作业。