Activity的用户组和用户管理实战

爱⌒轻易说出口 提交于 2020-04-17 14:36:53

【推荐阅读】微服务还能火多久?>>>

一 Activiti查询用户信息

1 代码

package com.syc.activiti;


import org.activiti.engine.IdentityService;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.identity.User;


public class GetUserInfo {
   
   public static void main(String[] args) {
      // 创建流程引擎
      ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
      // 得到身份服务组件实例
      IdentityService identityService = engine.getIdentityService();
      // 创建用户
      creatUser(identityService, "1", "angus", "young", "yangenxiong@163.com", "abc");
      // 创建一个用户信息
      identityService.setUserInfo("1", "age", "30");
      // 创建第二个用户信息
      identityService.setUserInfo("1", "weight", "60KG");
      // 查询用户信息
      String value = identityService.getUserInfo("1", "age");
      System.out.println("用户年龄为:" + value);
   }


   //创建用户方法
   static void creatUser(IdentityService identityService, String id, String first, String last, String email, String passwd) {
      // 使用newUser方法创建User实例
      User user = identityService.newUser(id);
      // 设置用户的各个属性
      user.setFirstName(first);
      user.setLastName(last);
      user.setEmail(email);
      user.setPassword(passwd);
      // 使用saveUser方法保存用户
      identityService.saveUser(user);
   }
}

2 运行结果

用户年龄为:30

3 数据库

mysql> select * from act_id_info;
+------+------+----------+----------+--------+--------+-----------+------------+
| ID_  | REV_ | USER_ID_ | TYPE_    | KEY_   | VALUE_ | PASSWORD_ | PARENT_ID_ |
+------+------+----------+----------+--------+--------+-----------+------------+
| 2501 |    1 | 1        | userinfo | age    | 30     | NULL      | NULL       |
| 2502 |    1 | 1        | userinfo | weight | 60KG   | NULL      | NULL       |
+------+------+----------+----------+--------+--------+-----------+------------+
2 rows in set (0.00 sec)


mysql> select * from act_id_user;
+-----+------+--------+-------+---------------------+------+-------------+
| ID_ | REV_ | FIRST_ | LAST_ | EMAIL_              | PWD_ | PICTURE_ID_ |
+-----+------+--------+-------+---------------------+------+-------------+
| 1   |    1 | angus  | young | yangenxiong@163.com | abc  | NULL        |
+-----+------+--------+-------+---------------------+------+-------------+
1 row in set (0.00 sec)

二 绑定用户与用户组的关系

1 代码

package com.syc.activiti;


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;


public class CreateMemberShip {


   public static void main(String[] args) {
      // 创建流程引擎
      ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
      // 得到身份服务组件实例
      IdentityService identityService = engine.getIdentityService();
      // 保存一个用户
      User user = creatUser(identityService, "1", "angus", "young", "yangenxiong@163.com", "abc");
      // 保存一个用户组
      Group group = createGroup(identityService, "2", "经理组", "manager");
      // 绑定关系
      identityService.createMembership(user.getId(), group.getId());
   }


   //创建用户方法
   static User creatUser(IdentityService identityService, String id, String first, String last, String email, String passwd) {
      // 使用newUser方法创建User实例
      User user = identityService.newUser(id);
      // 设置用户的各个属性
      user.setFirstName(first);
      user.setLastName(last);
      user.setEmail(email);
      user.setPassword(passwd);
      // 使用saveUser方法保存用户
      identityService.saveUser(user);
      return identityService.createUserQuery().userId(id).singleResult();
   }
   
   // 将用户组数据保存到数据库中
   static Group createGroup(IdentityService identityService, String id,
         String name, String type) {
      // 调用newGroup方法创建Group实例
      Group group = identityService.newGroup(id);
      group.setName(name);
      group.setType(type);
      identityService.saveGroup(group);
      return identityService.createGroupQuery().groupId(id).singleResult();
   }
}

2 数据库

mysql> select * from act_id_user;
+-----+------+--------+-------+---------------------+------+-------------+
| ID_ | REV_ | FIRST_ | LAST_ | EMAIL_              | PWD_ | PICTURE_ID_ |
+-----+------+--------+-------+---------------------+------+-------------+
| 1   |    1 | angus  | young | yangenxiong@163.com | abc  | NULL        |
+-----+------+--------+-------+---------------------+------+-------------+
1 row in set (0.00 sec)


mysql> select * from act_id_group;
+-----+------+-----------+---------+
| ID_ | REV_ | NAME_     | TYPE_   |
+-----+------+-----------+---------+
| 2   |    1 | 经理组    | manager |
+-----+------+-----------+---------+
1 row in set (0.00 sec)


mysql> select * from act_id_membership;
+----------+-----------+
| USER_ID_ | GROUP_ID_ |
+----------+-----------+
| 1        | 2         |
+----------+-----------+
1 row in set (0.00 sec)

 

发布了4131 篇原创文章 · 获赞 670 · 访问量 346万+
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!