activiti-用户与用户组

https://my.oschina.net/acitiviti/blog/283892

activiti学习笔记3-用户与用户组

收藏

安世博

发表于 3年前

  • 阅读 5507
  • 收藏 10
  • 点赞 0
  • 评论 2

摘要: activiti

(本博客都是纯文本手工代码,错误难免,需要在eclipse中自己调整错误代码)

activiti默认建立用户表,默认的用户表可以构建简单的用户管理功能。

一、表结构

acitiviti建立了默认用户表:

1,从表的名字可以一目了然的看到,activiti其实提供了一个简单的用户表结构,用户组与用户之间通过映射表进行关联,用户信息是一个单独的表;

2,如果要扩展成权限表,只需要增加一个权限表,然后和用户表进行映射,或者和用户组进行映射,即可成为一个简单的权限管理结构表;

3,用户体系表和activiti的其他表没有外键关联,说明acitivi允许你使用自己创建的用户体系表,这样可以和spring security或者shiro容易的结合在一起;

二、操作用户组与用户表

1,创建用户组:

//newGroup方法创建Group实例
Group group = identityService.newGroup("1");
group.setName("经理组");
group.setType("manager");
// 自定义方法保存用户组
public void createGroup(IdentityService identityService, String id,String name, String type) {
  Group group = identityService.newGroup(id);
  group.setName(name);
  group.setType(type);
  identityService.saveGroup(group);}
createGroup(identityService, "1", "经理组", "typeManager");

2,保存、删除用户组

identityService.saveGroup(group);
identityService.deleteGroup("1");

3,查询用户组

//调用listPage方法,从索引为2的记录开始,查询3条记录
List<Group> datas = identityService.createGroupQuery().list();
  for (Group data : datas) {
      System.out.println(data.getId() + "---" + data.getName() + " ");}
//其他类似查询方法
identityService.createGroupQuery().listPage();//分页返回查询结果
identityService.createGroupQuery().count();//结果总数
identityService.createGroupQuery().groupName("managerA").singleResult();//查询到多个时会抛出异常
identityService.createGroupQuery().groupNameLike("%managerA%").singleResult();//
identityService.createGroupQuery().groupId("1").singleResult();//
identityService.createGroupQuery().groupType("typeA").singleResult();//
identityService.createGroupQuery().orderByGroupId().asc().list();//结果升序
identityService.createGroupQuery().orderByGroupName().desc().list();//结果降序

4,添加,保存,删除用户

User user = identityService.newUser("新用户ID");
identityService.saveUser(user);
identityService.deleteUser(id);

5,验证用户密码

identityService。checkPassword("用户的ID","用户密码");

6,用户数据查询

//与group查询类似
List<User> datas = identityService.createGroupUser().list();

7,设置认证用户

identityService.setAuthenticatedUserId("用户ID");

认证用户的作用是设置流程发起人:

在流程开始之前设置,会自动在表ACT_HI_PROCINST 中的START_USER_ID_中设置用户ID:

//流程发起前设置发起人,记录在流程历史中
identityService.setAuthenticatedUserId("kitty");
//开始流程
runtimeService.startProcessInstanceByKey("XML中的ID");
//查询流程发起人
logger.info(historyService.createHistoricProcessInstanceQuery()
	            .startedBy("ketty").singleResult().getProcessDefinitionId());

applyUserId

扩展:设置BPMN开始节点initiator初始化参数applyUserId:

//XML图中设置其实节点初始化参数,其实就是节点人
<startevent id="startevent1" name="Start" activiti:initiator="applyUserId"></startevent>

接受参数applyUserId,流程返回发起人(<userTask>中):

activiti:assignee="${applyUserId}"

8,设置用户信息INFO表

//设置用户info信息,设置后type字段变成userinfo
identityService.setUserInfo("INFO表USER_ID","INFO表KEY","INFO表VALUE");
//设置账号信息,设置后TYPE字段变成account,一个用户可以用多个账号
identityService.setUserAccount("INFO表USER_ID","INFO表KEY","INFO表VALUE");

9,查询用户信息INFO表

identityService.getUserInfo("INFO表USER_ID","INFO表KEY");
identityService.getUserAccount("INFO表USER_ID","INFO表KEY");//不推荐使用

二、用户与用户组关系

1,设置用户与用户组关系

identityService.createMembership("用户ID","组ID");//绑定
identityService.deleteMembership("用户ID","组ID");//删除

2,查询用户与用户组关系

List<Group> datas = identityService.createGroupQuery().groupMember(user.getId()).list();
List<User> datas = identityService.createUserQuery().MemberOfGroup(group.getId()).list();

三、创建用户与用户组通用方法

1,用户

//创建用户方法
public void creatUser(IdentityService identityService, String id, String first, String email, String passwd) {
    // 使用newUser方法创建User实例
    User user = identityService.newUser(id);
    // 设置用户的各个属性
    user.setFirstName(first);
    user.setLastName("none");
    user.setEmail(email);
    user.setPassword(passwd);
    // 使用saveUser方法保存用户
    identityService.saveUser(user);}
//具体创建
IdentityService identityService = engine.getIdentityService();
creatUser(identityService, "user1", "德玛西亚", "[email protected]", "123");

2,组

// 将用户组数据保存到数据库中
public void 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);
}
// 写入用户组数据
IdentityService identityService = engine.getIdentityService();
createGroup(identityService, "group1", "Group A", "type A");

? 著作权归作者所有

时间: 2024-10-07 09:04:28

activiti-用户与用户组的相关文章

linux基本命令整理(二):用户、用户组、文件系统和网络

linux常用命令(二).txt -----------用户.用户组.文件系统和网络 一.用户的管理     1.用户的管理        useradd +"用户名" 新怎用户 如:useradd dy            -p :指定用户的密码            -c :制定一段注释性的描述            -d :指定用户所在的目录            -m:当指定的用户所在目录不存在时,可用-m创建 -g :指定用户所属的组(主组) -G :指定用户所属地附加组

Linux权限管理及用户与用户组

第一部分:Linux权限管理 一.基本权限 linux权限机制采用UGO模式.其中 u(user)表示所属用户.g(group)表示所属组.o(other)表示除了所属用户.所属组之外的情况. u.g.o 都有读(read).写(write).执行(excute) 三个权限,所以UGO模式是三类九种基本权限. 用命令 ls -l 可列出文件的权限,第一列输出明确了后面的输出(后面一列代表 ugo权限).第一个字母对应的关系: "-"    普通文件 "d"   目录

LINUX用户、用户组及权限管理

LINUX用户.用户组及权限管理 一.LINUX权限管理 LINUX权限分为:r,w,x,读,写,可执行 对文件来说: r 可读,即可以使用类似cat等命令查看文件的内容 w 可写,可以编辑或删除此文件: x 可执行,exacutable,可以在命令提示符下当做命令提交给内核运行. 对于目录来说(默认有x权限): r 可以对此目录执行ls以列出内部的所有文件 w 可以在此目录中创建文件 x 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息. 文件 目录 r 可读,即可以使用类

用户与用户组的管理

一. 用户与用户组的管理 1####################用户如何存在与系统当中###################### /etc/passwd #用信息文件 用户名字:用户密码:用户uid:用户gid:用户说明:用户加目录:用户使用的shell /etc/shadow #用户认证信息 用户名称:密码:密码使用天数:最短有效期:密码最长有效期:密码警告期:密码非活跃期:密码到期日: /etc/group #用户组信息 用户组名称:用户组密码:用户组id:附加用户成员 /home/u

用户,用户组及权限管理

用户.用户组.其他的权限 多用户:多人同时使用系统资源: 多任务:同行运行多个进程: AAA: Authentication认证 Authorization授权 Account账户 用户的类别: 管理员:root 普通用户: 系统用户:仅用于运行服务程序: 登录用户:系统资源的正常使用者: 用户标识:UserID, UID 16bits二进制数字:0-65535: 管理员:0 普通用户: 系统用户: CentOS 5, 6: 1-499 CentOS 7: 1-999 普通用户: CentOS

Linux学习8---(用户和用户组管理)

1.用户和用户组     用户和用户组概念        用户:使用操作系统的人(Linux支持多个用户在同一时间登陆同一个操作系统)        用户组:具有相同权限的一组用户(Linux系统中可以存在多个用户组)     相关的配置文件        /etc/group:储存当前系统中所有用户组信息            Group:        x        :    123        :    abx,def,xyz            组名称:    组密码占位符:  

攻城狮在路上(叁)Linux(十一)--- 用户与用户组、文件权限、目录配置

一.用户与用户组: 3个概念:文件所有者(user).用户组(group).其他人(others). /etc/passwd  <==存放所有的用户名 /etc/shadow  <==存放个人密码 /etc/group     <==存放所有的组名 二.文件权限的概念: 1.文件属性 <==使用ls -al命令 drwxr-x---       1       root  root   4096  sep8 18:27  install.log    ① ② ③ ④ ⑤ ⑥ ⑦ 参

Linux用户及用户组设置

查看当前用户所属的组 groups 查看<user1>, <user2> 和 <user3>所属的组 groups <user1> <user2> <user3> 更改用户的主用户组或附加组 usremod <user> -g <maingroup> -G<addgroup> Linux用户及用户组设置,布布扣,bubuko.com

C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限

题目链接:11645 - Bits 题意:给定一个数字n,要求0-n的二进制形式下,连续11的个数. 思路:和 UVA 11038 这题类似,枚举中间,然后处理两边的情况. 不过本题最大的答案会超过longlong,要用高精度,不过借鉴http://www.cnblogs.com/TO-Asia/p/3214706.html这个人的方法,直接用两个数字来保存一个数字,这样能保存到2个longlong的长度,就足够存放这题的答案了. 代码: #include <stdio.h> #include

Linux用户、用户组权限管理详解 --- 02

2,用户.用户组管理操作详解: 2.1 adduser 添加用户: adduser [-u uid][-g group][-d home][-s shell] -u:直接给出userID                      -g:直接给出GID -d:直接将根目录建立在已存在目录         -s:定义shell 添加用户 garfield 1 adduser garfield 通过前面介绍的三个用户管理文件检验用户 garfield 的添加是否成功: 当我们新建用户时,通过 /etc