博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(十六)Activitivi5之内置用户组(角色)设计表以及IdentityService
阅读量:7078 次
发布时间:2019-06-28

本文共 2846 字,大约阅读时间需要 9 分钟。

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

  • 用户和组(或者叫做角色),多对多关联,通过关联表实现
  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

你可能感兴趣的文章
七、并发容器ConcurrentHashMap
查看>>
CentOS 6.4 yum快速搭建Zabbix 2.2版本(中文)
查看>>
MySQL密码丢失,解决方法
查看>>
20135306黄韧[2.72 2.77 3.70](http://i.cnblogs.com/EditPosts.aspx?opt=1)
查看>>
配置Redis客户端
查看>>
easyui datagrid 相关取数据总结
查看>>
LeetCode:Reverse LinkedList
查看>>
xshell中复制快捷键的设置
查看>>
Problem A: 字符的变化
查看>>
Leveldb -转
查看>>
列表与元组的区别
查看>>
4月13
查看>>
Daily Scrum: 2012/11/12
查看>>
日志详解
查看>>
一起谈.NET技术,走向ASP.NET架构设计——第七章:阶段总结,实践篇(中篇)...
查看>>
第十二章 Java内存模型与线程
查看>>
jquery鼠标事件
查看>>
python写的百度图片爬虫
查看>>
【Android】试水安卓开发
查看>>
UnityGUI系统之InputField
查看>>