流程部署和流程启动权限控制"/>
[9]深入浅出工作开源框架Camunda:流程部署和流程启动权限控制
在《[8]深入浅出工作开源框架Camunda:用户任务权限控制》 一文中,我们提到如何通过权限控制用户的是否能进入任务页面查看或者处理任务; 此外,我们知道其实还有部署流程和启动流程的权限控制控制;那这是如何控制的呢?比如我还是用user2来部署一个流程,如果没有给user2赋予部署的流程,其会报出下面的错误。
The user with id 'user2' does not have 'CREATE' permission on resource 'Deployment'. [ deploy-error ]
那应该如何给user2配置部署权限呢?方法如下:
这样user2就能有权限部署流程了~ 通过查看数据库,其resource 类型插入了一条为9的数据。
对照下面的代码,“9”代表部署的权限。
APPLICATION(EntityTypes.APPLICATION, 0),USER(EntityTypes.USER, 1),GROUP(EntityTypes.GROUP, 2),GROUP_MEMBERSHIP(EntityTypes.GROUP_MEMBERSHIP, 3),AUTHORIZATION(EntityTypes.AUTHORIZATION, 4),FILTER(EntityTypes.FILTER, 5),PROCESS_DEFINITION(EntityTypes.PROCESS_DEFINITION, 6),TASK(EntityTypes.TASK, 7),PROCESS_INSTANCE(EntityTypes.PROCESS_INSTANCE, 8),DEPLOYMENT(EntityTypes.DEPLOYMENT, 9),DECISION_DEFINITION(EntityTypes.DECISION_DEFINITION, 10),TENANT(EntityTypes.TENANT, 11),TENANT_MEMBERSHIP(EntityTypes.TENANT_MEMBERSHIP, 12),BATCH(EntityTypes.BATCH, 13),DECISION_REQUIREMENTS_DEFINITION(EntityTypes.DECISION_REQUIREMENTS_DEFINITION, 14),REPORT(EntityTypes.REPORT, 15),DASHBOARD(EntityTypes.DASHBOARD, 16),OPERATION_LOG_CATEGORY(EntityTypes.OPERATION_LOG_CATEGORY, 17),@DeprecatedOPTIMIZE(EntityTypes.OPTIMIZE, 18),HISTORIC_TASK(EntityTypes.HISTORIC_TASK, 19),HISTORIC_PROCESS_INSTANCE(EntityTypes.HISTORIC_PROCESS_INSTANCE, 20),SYSTEM(EntityTypes.SYSTEM, 21);
但是这个时候,如果user2尝试启动新的流程,我们会发现在UI里面其找不到任何流程;
那么应该如何给user2赋予启动流程的权限呢?需要下面的权限配置:
(配置#1)在Process Instance(流程实例权限配置里面)赋予user2,create的权限。
(配置#2)在流程定义(Process Definition)里面要赋予user2的 “CREATE_INSTANCE”权限。
我们用Camunda Modeler来测试一下,这个时候能部署并启动流程成功!
但是奇怪的是,界面上还是没有显示出能让user2启动的流程实例!如下图所示意,是空的!
哪怕我把驾驶舱,管理界面的权限也放出来,也没有用:其部署的流程数目还是0
所以需要回到流程部署的权限控制,把创建和读取权限打开
这个时候,就能立马看到部署的流程。
而且还能删除!但是在启动流程里面,其还是没有权限!问题应该还是出在对流程定义没有权限。
因此回到流程定义的权限控制,加上一个READ的权限。
这个时候,user2重新登录,并在任务列表页面就能在UI上面启动流程了~
更多推荐
[9]深入浅出工作开源框架Camunda:流程部署和流程启动权限控制
发布评论