(十六)Activitivi5之内置用户组(角色)设计表以及IdentityService

本文介绍Activiti工作流引擎中的用户组管理功能,包括内置用户组设计、用户表、组表及用户信息表的设计概念,并提供了添加用户、删除用户、添加组、删除组等操作的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、内置用户组(角色)设计表概念

  • 用户和组(或者叫做角色),多对多关联,通过关联表实现
  1. act_id_user 用户表;

  2. act_id_group 用户组表;

  3. act_id_membership 用户与组的关联表,用来实现多对多;

  4. act_id_info 用户信息表;

 

     1.  act_id_user 用户表;

  • 这里的设计可能和我们想象的不一样,比如_ID,字符串类型 我们直接可以把他当作用户名 

    FIRST_ LAST_ 是英文命名习惯  EMAIL_ PWD 邮箱 密码 字段 等等。

 

  2.  act_id_group 用户组表(或者叫做角色)

 

 

  3.  act_id_membership 用户与组的关联表,用来实现多对多

 

  • 只有两个字段 USER_ID_ 和 GROUP_ID_ 分别关联用户表的主键和组表的主键;

 

 

   4.  act_id_info 用户信息表

 

  •  主要是用来扩展用户信息,以及可以实现组织机构层次关系,比如雇员领导用户设计

 

   5.  说明

  • 这个是activiti给我们内置的一个用户组设计,
  • 这里说明下:正常的企业级项目都有自己的组织机构用户权限设置表,所以一般不会用到内置的;
  • 但是假如一个很小的系统,例如 学生请假系统 就那么几十个用户,两三中角色,那我们就可以用内置的,用内置的更加方便;

 

 

二、IdentityService 基本使用

package com.shyroke.activiti.firstActiviti;

import org.activiti.engine.IdentityService;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.identity.Group;
import org.activiti.engine.identity.User;
import org.activiti.engine.impl.persistence.entity.GroupEntity;
import org.activiti.engine.impl.persistence.entity.UserEntity;
import org.junit.Test;

public class IdentityTest {
    /**
     * 获取默认流程引擎实例,会自动读取activiti.cfg.xml文件
     */
    ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
    
    
    /**
     * 添加用户测试
     */
    @Test
    public void saveUser() {
        IdentityService identityService=processEngine.getIdentityService();
        User user1=new UserEntity();
        user1.setId("张三");
        user1.setPassword("123");
        User user2=new UserEntity();
        user2.setId("李四");
        user2.setPassword("456");
        identityService.saveUser(user1);
        identityService.saveUser(user2);
    }
    
    /**
     * 删除用户
     */
    @Test
    public void deleteUser() {
        IdentityService identityService=processEngine.getIdentityService();
        identityService.deleteUser("李四");
    }
    
      /**
     * 测试添加组(角色)
     */
    @Test
    public void testSaveGroup(){
        IdentityService identityService=processEngine.getIdentityService();
        Group group=new GroupEntity(); // 实例化组实体
        group.setId("管理员");
        Group group2=new GroupEntity(); // 实例化组实体
        group2.setId("普通用户");
        identityService.saveGroup(group);
        identityService.saveGroup(group2);
    }
    
    /**
     * 测试删除组(角色)
     */
    @Test
    public void testDeleteGroup(){
        IdentityService identityService=processEngine.getIdentityService();
        identityService.deleteGroup("管理员");
    }
    
    /**
     * 测试添加用户和组(角色)关联关系
     */
    @Test
    public void testSaveMembership(){
        IdentityService identityService=processEngine.getIdentityService();
        identityService.createMembership("张三", "普通用户");
    }
    
    /**
     * 测试删除用户和组(角色)关联关系
     */
    @Test
    public void testDeleteMembership(){
        IdentityService identityService=processEngine.getIdentityService();
        identityService.deleteMembership("张三", "普通用户");
    }
    
}

 

转载于:https://www.cnblogs.com/shyroke/p/8005374.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值