Flowable入门系列文章65 - 流程启动授权

默认情况下,允许所有人启动已部署流程定义的新流程实例。流程启动授权功能允许您定义用户和组,以便Web客户端可以选择限制可以启动新流程实例的用户。注意授权定义不以任何方式由Flowable引擎验证。此功能仅适用于开发人员在Web客户端中简化授权规则的实施。语法与用户任务的用户分配语法相似。可以使用<flowable:potentialStarter>标签将用户或组指定为流程的潜在发起人。这里是一个例子:

<process id="potentialStarter">
<extensionElements>
<flowable:potentialStarter>
<resourceAssignmentExpression>
<formalExpression>group2, group(group3), user(user3)</formalExpression>
</resourceAssignmentExpression>
</flowable:potentialStarter>
</extensionElements>
<startEvent id="theStart"/>
...

在上面的XML摘录中,用户(user3)直接指用户user3,而group(group3)指group3。没有指示器将默认为组类型。也可以使用标签的属性,即<flowable:candidateStarterUsers>和<flowable:candidateStarterGroups>。这里是一个例子:

<process id="potentialStarter" flowable:candidateStarterUsers="user1, user2"
flowable:candidateStarterGroups="group1">
...

可以同时使用这两个属性。

在定义了流程启动授权之后,开发人员可以使用以下方法检索授权定义。此代码检索可由给定用户启动的流程定义列表:

processDefinitions = repositoryService.createProcessDefinitionQuery().startableByUser("userxxx").list();

也可以检索定义为特定流程定义的潜在发起人的所有身份链接。

identityLinks = repositoryService.getIdentityLinksForProcessDefinition("processDefinitionId");

以下示例显示如何获取可以启动给定进程的用户列表:

List<User> authorizedUsers = identityService().createUserQuery()
.potentialStarter("processDefinitionId")
.list();

以完全相同的方式,可以检索配置为给定流程定义的潜在启动者的组列表:

List<Group> authorizedGroups = identityService().createGroupQuery()
.potentialStarter("processDefinitionId")
.list()

上面文章来自盘古BPM研究院:http://vue.pangubpm.com/
文章翻译提交:https://github.com/qiudaoke/flowable-userguide
了解更多文章可以关注微信公众号:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值