Flowable 学习笔记(二)—— 用户权限体系

使用Flowable工作流引擎的时候,不可避免就需要考虑相应的用户权限,

根据官方文档提供的教程,实现Flowable的用户权限体系总共有两大类:

(一)Flowable提供的IdmEngine身份识别引擎

使用Flowable提供的IdmEngine,也有三种方案:

方案一:Flowable默认提供的IdmEngine已经实现IdmIdentityService接口,包含对用户、组、权限等的操作;

方案二:集成LDAP来实现轻量级用户权限管理。LDAP内部已经实现IdmIdentityService接口,包含对用户、组、权限等的操作;

方案三:自定义实现IdmIdentityService接口,实现对用户、组、权限的操作;

(二)自定义身份识别引擎

有时候在项目上已经实现了自己的用户体系,接入Flowable的工作流引擎时,就需要考虑如何将自己的用户体系映射到Flowable工作流引擎的数据权限上去。Flowable提供的数据权限体系是用户、组、租户的结构体系,因为这里提供一个映射的设计思路:

在实际项目中,往往用户会存在租户、角色、部门之间的对应关系,因而在对应到Flowable的用户、组、租户的时候可以用以下思路来处理:

用户权限体系映射

具体的案例如下:

用户A(id值为1) - 角色A(id值为1) - 部门A(id值为1) - 区域A(id值为1)(某个租户的用户A是角色A,所在部门为部门A,所属区域为区域A)

根据上述的映射关系转换成如下
用户转换后的id:1

角色转换后的id:R1

部门转换后的id:O1

区域转换后的id:A1

将映射关系对应到Flowable中

用户:1

组:R1、O1、A1

知道如果映射后,现在的问题就是在哪里去实现这部分的映射关系,以下提供几种实现的思路,目前还没正式验证过,仍处于实验阶段:

一、修改官方的源码

已知对bpmn的用户任务进行解析的方法类为UserTaskXMLConverter,通过该类的源码可以了解相关的解析机制,在此基础上对自己需要的节点添加相关的解析操作

二、找到官方提供的自定义配置,修改自定义配置属性(还未找到方案)

三、在前端设计bpmn文件的时候,通过相关的方法对id进行映射后生成最终的bpmn文件

四、自定义权限的表达式,例如:

其中idmTest.org就是用来自定义返回的id集的方法

你可能感兴趣的:(Flowable 学习笔记(二)—— 用户权限体系)