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

 

 

相關文章
相關標籤/搜索