【工作流前进之路】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

相关文章

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4