activiti-用户与用户组

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

 

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

发表于 3年前java

摘要: activiti

(本博客都是纯文本手工代码,错误不免,须要在eclipse中本身调整错误代码)spring

activiti默认创建用户表,默认的用户表能够构建简单的用户管理功能。typescript

1、表结构

acitiviti创建了默认用户表:数据库

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

2,若是要扩展成权限表,只须要增长一个权限表,而后和用户表进行映射,或者和用户组进行映射,便可成为一个简单的权限管理结构表;app

3,用户体系表和activiti的其余表没有外键关联,说明acitivi容许你使用本身建立的用户体系表,这样能够和spring security或者shiro容易的结合在一块儿;less

2、操做用户组与用户表

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");

 

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

    在流程开始以前设置,会自动在表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");//不推荐使用

 

2、用户与用户组关系

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();

 

3、建立用户与用户组通用方法

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", "德玛西亚", "abc@163.com", "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");

 

 

相关文章
相关标签/搜索