jbpm 关于动态用户组动态分配,及流程权限解决方案 思路分享 供大家拍砖版

我这边需求场景是每个审批环节为下个审批节点选择某个角色后,下个节点的人员才能确定。jbpm原有的组用户这3张权限控制满足这种情况。

我分享一下现在的应急做法,(还是希望有别的更好的解决方案,大家分享出来共同学习)

思路:
1、我在系统中定义了一张流程权限控制记录表。
字段的话比如是:流程定义key,流程实例,taskname,初始任务接受人(一个非真实人名),角色ID,最终任务领用人。大概就这些字段。

2、流程图还是用<task assignee="#{groupleader}"这种方式,不用组方式(放弃那3张表)

3、申请人提交单子时,往这张表记录一条数据,“初始任务接受人”字段可以先存个groupleader字符串。

4、当前用户查看任务列表时,用当然用户的角色ID去查找“初始任务接受人”字段,能找到“初始任务接受人”字段的就可以findPersonalTasks(),查询任务列表了。(权限也差不多在这控制了)

5、打开查看一个任务提交审批意见时,先要用当前用户userId把jbpm数据库中存的“初始任务接受人”替换掉。用户组的方式jbpm有个任务领用接口takeTask(),但这里不能这么用。好在jbpm还有个接口可以投机取巧一下,就是转交任务接口assignTask(),可以将之前的“初始任务接受人(一个非真实人名)”替换掉了,将任务转交给自己。接下来在完成任务。

6、当然任务竞争领用之类的也可以在系统中控制了。

这样的话改造量最小,而且还在继续使用系统中人员、部门、角色、权限等现有数据。

有时候往往不能再流程发布时就能确定下个节点的审批人员,都要动态地。

这方式可行的最大一个点是转交任务接口assignTask(),要不是知道这个接口也不会这么设计了。

不过这种方案还是不够好,只是应急解决了,论坛中都在说IdentitySession,这个我不是很了解,现在还不能触类旁通。希望大家对这个解决方案提出些质疑或漏洞。

希望大家有好的解决方案实例分享
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值