springboot整合activity6之内置用户组设计表以及IdentityServic(无废话版)--------------------------------------------(十六)

1.源码地址:https://github.com/heidaodageshiwo/springbootactivity

 

 

 

Activiti之内置用户组设计表

 

Activiti给我们提供了一套内置的用户和组设计表;

 

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

 

四个表,

act_id_group 用户组表;

act_id_user 用户表;

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

act_id_info 用户信息表;

 

 

比如_ID,字符串类型 我们直接可以把他当作用户名 

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

 

 

ID_  依然是字符串类型 还有NAME_ TYPE_字段

 

 

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

 

 

是用户信息表,主要是用来扩展用户信息,以及可以实现组织机构层次关系;

 

这里USE_ID_ 可以关联用户表的主键 KEY_ VALUE_可以扩展用户信息(虽然这个是一种冗余设计),PARENT_ID可以实现层次设计;

这里表了解即可

这个是activiti给我们内置的一个用户组设计,

这里说明下:正常的企业级项目都有自己的组织机构用户权限设置表,所以一般不会用到内置的;

但是假如一个很小的系统,例如 学生请假系统 就那么几十个用户,两三中角色,那我们就可以用内置的,用内置的更加方便;

 

Activiti提供了一个Service来专门操作用户组表,那就是 IdentityService 身份信息Service

我们可以用过IdentityService来添加修改用户信息,组信息,也可以删除用户信息,组信息,以及维护他们的关联关系;

 

 

 /**
   * 添加用户测试
   */
  @RequestMapping("/testSaveUser")
  public String testSaveUser() {
    User user2 = identityService.newUser("user2");
    user2.setId("王五");
    user2.setEmail("123@qq.com");
    user2.setPassword("123456");
    user2.setFirstName("王");
    user2.setLastName("五");
    identityService.saveUser(user2); // 添加用户
    return "testSaveUser";

  }

 

 

 

 

 

 

其余代码可自行测试。

 

package com.zhangqiang.activity.Identity;

import org.activiti.engine.IdentityService;
import org.activiti.engine.identity.Group;
import org.activiti.engine.identity.Picture;
import org.activiti.engine.identity.User;
import org.activiti.engine.identity.UserQuery;
import org.activiti.engine.impl.persistence.entity.ByteArrayRef;
import org.activiti.engine.impl.persistence.entity.UserEntity;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class IdentityTest {
  @Autowired
  IdentityService identityService;

  /**
   * 添加用户测试
   */
  @RequestMapping("/testSaveUser")
  public String testSaveUser() {
    User user2 = identityService.newUser("user2");
    user2.setId("王五");
    user2.setEmail("123@qq.com");
    user2.setPassword("123456");
    user2.setFirstName("王");
    user2.setLastName("五");
    identityService.saveUser(user2); // 添加用户
    return "testSaveUser";

  }

  /**
   * 测试删除用户
   */
  @RequestMapping("/testDeleteUser")
  public String testDeleteUser() {
    identityService.deleteUser("lisi");
    return "testDeleteUser";
  }

  /**
   * 测试查询用户
   */
  @RequestMapping("/testSelectUser")
  public String testSelectUser() {
    User usecc = identityService.createUserQuery().userId("王五").singleResult();
    System.out.println("id========" + usecc.getId());
    System.out.println("firstname========" + usecc.getFirstName());
    System.out.println("lastname========" + usecc.getLastName());
    System.out.println("password========" + usecc.getPassword());
    System.out.println("email========" + usecc.getEmail());

    System.out.println("==================单个用户,多个用户分割线=====================================");
    List<User> users=identityService.createUserQuery().list();
    for(int i=0;i<users.size();i++){
      System.out.println("id========" + users.get(i).getId());
      System.out.println("firstname========" + users.get(i).getFirstName());
      System.out.println("lastname========" + users.get(i).getLastName());
      System.out.println("password========" + users.get(i).getPassword());
      System.out.println("email========" + users.get(i).getEmail());
      System.out.println("=====================================================================");
    }
    return "testSelectUser";
  }

  /**
   * 测试添加组
   */
  @RequestMapping("/testSaveGroup")
  public String testSaveGroup() {
    Group group = identityService.newGroup("group1");
    group.setId("dev");
    identityService.saveGroup(group);
    return "testSaveGroup";

  }

  /**
   * 测试删除组
   */
  @RequestMapping("/testDeleteGroup")
  public String testDeleteGroup() {
    identityService.deleteGroup("test");
    return "testDeleteGroup";

  }


  /**
   * 测试添加用户和组关联关系
   */
  @RequestMapping("/testSaveMembership")
  public String testSaveMembership() {
    identityService.createMembership("张三", "dev");
    identityService.createMembership("王五", "dev");
    return "testSaveMembership";

  }

  /**
   * 测试删除用户和组关联关系
   */
  @RequestMapping("/testDeleteMembership")
  public String testDeleteMembership() {
    identityService.deleteMembership("lisi", "test");
    return "testDeleteMembership";

  }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值