【工作流前进之路】Activiti 权限之处理用户组和用户关系

2024-03-15 06:08

本文主要是介绍【工作流前进之路】Activiti 权限之处理用户组和用户关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    在前面的系列博客<<【工作流前进之路】Activiti权限之用户组-数据查询>><<【工作流前进之路】Activiti权限之用户管理>>,我已经介绍过用户和用户组了,那么如何把它们放到一块呢,这篇博客,我们就把它们放到一块去.在我们使用过的系统中或者开发过的系统中,一个用户可以被分配到多个用户组中,一个用户组中可以包含多个用户,所以用户组和用户之间的关系如下:



    Activiti,是使用第三张表(ACT_ID_MEMBERSHIP)的来保存这两种数据间的关系.通过关系表就可以清楚的看到用户组和用户之间的关系.Activiti也提供了相应的API来进行操作.

 

.绑定关系

要绑定用户和用户组的关系,就需要往表ACT_ID_MEMBERSHIP中写入数据,再此需要写入的数据主要是用户ID和用户组ID.具体实现如下:

<span style="font-family:Times New Roman;">public static voidmain(String[] args) {//创建一个流程引擎
ProcessEngineengine = ProcessEngines.getDefaultProcessEngine();
//得到身份服务组件实例
IdentityServiceidentityService = engine.getIdentityService();Useruser = identityService.newUser("12");identityService.saveUser(user);Groupgroup = identityService.newGroup("23");identityService.saveGroup(group);System.out.println(user.getId());System.out.println(group.getId());
//绑定关系identityService.createMembership(user.getId(),group.getId());}</span>

删除关系就用deleteMembership方法就可以了.

 

.查询用户组下的用户

一个用户组会拥有多个用户,那么如何查询这些用户呢,具体代码如下:

public static voidmain(String[] args) {
// 创建流程引擎
ProcessEngineengine = ProcessEngines.getDefaultProcessEngine();
// 得到身份服务组件实例
IdentityServiceidentityService = engine.getIdentityService();
// 查询
List<Group>GroupList = identityService.createGroupQuery()
.groupMember("1").list();System.out.println("张三属于的用户组有: ");
for(Groupgroup : GroupList){
System.out.println(group.getName());
}
}

.查询用户所属于的组

在前面一个方法中,介绍如何查询组下有哪些用户,那么此处就介绍一下如果通过用户查询出它所属于的组.

<span style="font-family:Times New Roman;">public static voidmain(String[] args) {
// 创建一个流程引擎
ProcessEngineengine = ProcessEngines.getDefaultProcessEngine();
// 得到身份服务组件实例
IdentityServiceidentityService = engine.getIdentityService();
// 查询
List<User>userlist = identityService.createUserQuery()
.memberOfGroup("22").list();
System.out.println("经理组有如下人员: ");
for(User user : userlist) {
System.out.println(user.getFirstName());
}
}</span>

.总结

    做过或者是了解过权限的人,这部分内容和权限中设置用户组和用户的关系是一样的,学习工作流的时候,可以多想想以前接触过的系统,能够让自己更快的理解.


这篇关于【工作流前进之路】Activiti 权限之处理用户组和用户关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/811036

相关文章

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R