jbpm 关于动态用户组动态分配,及流程权限解决方案 思路分享
2010-10-22 13:40
239 查看
我这边需求场景是每个审批环节为下个审批节点选择某个角色后,下个节点的人员才能确定。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,这个我不是很了解,现在还不能触类旁通。
希望大家对这个解决方案提出些质疑或漏洞。
希望大家有好的解决方案实例分享。
原文地址: http://jbpm.group.javaeye.com/group/topic/23056
我分享一下现在的应急做法,(还是希望有别的更好的解决方案,大家分享出来共同学习)
思路:
1、我在系统中定义了一张流程权限控制记录表。
字段的话比如是:流程定义key,流程实例,taskname,初始任务接受人(一个非真实人名),角色ID,最终任务领用人。大概就这些字段。
2、流程图还是用<task assignee="#{groupleader}"这种方式,不用组方式(放弃那3张表)
3、申请人提交单子时,往这张表记录一条数据,“初始任务接受人”字段可以先存个groupleader字符串。
4、当前用户查看任务列表时,用当前用户的角色ID去查找“初始任务接受人”字段,能找到“初始任务接受人”字段的就可以findPersonalTasks(),查询任务列表了。(权限也差不多在这控制了)
5、打开查看一个任务提交审批意见时,先要用当前用户userId把jbpm数据库中存的“初始任务接受人”替换掉。用户组的方式jbpm有个任务领用接口takeTask(),但这里不能这么用。好在jbpm还有个接口可以投机取巧一下,就是转交任务接口assignTask(),可以将之前的“初始任务接受人(一个非真实人名)”替换掉了,将任务转交给自己。接下来在完成任务。
6、当然任务竞争领用之类的也可以在系统中控制了。
这样的话改造量最小,而且还在继续使用系统中人员、部门、角色、权限等现有数据。
有时候往往不能在流程发布时就能确定下个节点的审批人员,都要动态地。
这方式可行的最大一个点是转交任务接口assignTask(),要不是知道这个接口也不会这么设计了。
不过这种方案还是不够好,只是应急解决了,论坛中都在说IdentitySession,这个我不是很了解,现在还不能触类旁通。
希望大家对这个解决方案提出些质疑或漏洞。
希望大家有好的解决方案实例分享。
原文地址: http://jbpm.group.javaeye.com/group/topic/23056
相关文章推荐
- Android 6.0: 动态权限管理的解决方案
- C++中关于[]静态数组和new分配的动态数组的区别分析
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 关于IIS 对temp目录权限问题的解决分享!
- 关于[]静态数组和new分配的动态数…
- C++中关于[]静态数组和new分配的动态数组的区别分析
- Android 6.0: 动态权限管理的解决方案
- 关于Android 6.0权限的动态适配详解
- ofbiz 权限设计及动态二级菜单解决方案
- 分享》:关于阅读开源项目的源码思路方法
- 轻量级Android6.0动态权限解决方案
- linux 新建用户、用户组 以及为新用户分配权限
- TP框架中,关于对auth权限分配的理解
- 数组不是指针——数组地址不能动态分配空间,一个小例子关于指针移动,以及malloc
- Android 6.0: 动态权限管理的解决方案
- C++中关于[]静态数组和new分配的动态数组的区别分析
- 让菜单充满活力:ASP.NET根据角色动态分配菜单+权限
- linux 新建用户、用户组 以及为新用户分配权限
- 关于[]静态数组和new分配的动态数组的区别
- 关于用户,用户组,角色和权限