关键词:
学习资料:《Activiti实战》
第五章 用户与组及部署管理(一)用户与组
内容概览:讲解activiti中内置的一套用户、组的关系,以及如何通过API添加、删除、查询。
5.1 用户与组
5.1.1 用户
1 public class IdentityServiceTest{ 2 @Rule 3 public ActivitiRule ar = new ActivitiRule();//使用默认的acitiviti.cfg.xml作为参数 4 5 @Test 6 public void testUser() throws Exception(){ 7 IdentityService is = ar.getIdentityService(); 8 9 User user = is.newUser("henryyan"); 10 user.setFirstName("Henry"); 11 user.setLastName("yan"); 12 user.setEmail("[email protected]"); 13 14 is.saveUser(user); 15 16 User userInDb = is.createUserQuery().userId("henryyan").singleResult(); 17 assertNotNull(userInDb); 18 19 is.deleteUser("henryyan"); 20 userInDb = is.createUserQuery().userId("henryyan").singleResult(); 21 assertNull(userInDb); 22 } 23 }
5.1.2 组
1 public class IdentityServiceTest{ 2 @Rule 3 public ActivitiRule ar = new ActivitiRule();//使用默认的acitiviti.cfg.xml作为参数 4 5 @Test 6 public void testGroup() throws Exception(){ 7 IdentityService is = ar.getIdentityService(); 8 9 Group group = is.newGroup("deptLeader"); 10 group .setName("部门领导"); 11 group .setType("assignment"); 12 13 is.saveGroup(group); 14 15 List<Group> groupList = is.createGroupQuery().groupId("deptLeader").list(); 16 assertEquals(1,groupList.size()); 17 18 is.deleteGroup("deptLeader"); 19 groupList = is.createGroupQuery().groupId("deptLeader").list(); 20 assertEquals(0,groupList.size()); 21 } 22 }
5.1.3 用户与组的关系
1 public class IdentityServiceTest{ 2 @Rule 3 public ActivitiRule ar = new ActivitiRule();//使用默认的acitiviti.cfg.xml作为参数 4 5 @Test 6 public void testUserAndGroupMembership() throws Exception(){ 7 IdentityService is = ar.getIdentityService(); 8 9 Group group = is.newGroup("deptLeader"); 10 group .setName("部门领导"); 11 group .setType("assignment"); 12 is.saveGroup(group); 13 14 User user = is.newUser("henryyan"); 15 user.setFirstName("Henry"); 16 user.setLastName("yan"); 17 user.setEmail("[email protected]"); 18 is.saveUser(user); 19 20 is.createMembership("henryyan","deptLeader"); 21 22 //查询组deptLeader所拥有的用户 23 User userInGroup = is.createUserQuery().memberOfGroup("deptLeader").singleResult(); 24 assertNotNull(userInGroup); 25 assertEquals("henryyan",userInGroup.getId()); 26 27 //查询用户henryyan所属的组 28 Group groupContainsHenryyan = is.createGroupQuery().groupMember("henryyan").singleResult(); 29 assertNotNull(groupContainsHenryyan); 30 assertEquals("deptLeader",groupContainsHenryyan.getId()); 31 } 32 }
5.1.4 UserTask中的用户与组
假设一个流程图示意图如下:
开始--->用户任务--->结束
共用的xml文件如下:
1 <process id="userAndGroupInUserTask" name="userAndGroupInUserTask"> 2 <startEvent id="startEvent1" name="Start"></startEvent> 3 <userTask id="studyUserAndGroupInUserTask" name="学习用户与组在用户任务中的应用"></userTask> 4 <sequenceFlow id="flow1" name="" sourceRef="startEvent1" targetRef="studyUserAndGroupInUserTask"></sequenceFlow> 5 <endEvent id="endEvent1" name="End"></endEvent> 6 <sequenceFlow id="flow2" name="" sourceRef="studyUserAndGroupInUserTask" targetRef="endEvent1"></sequenceFlow> 7 </process>
共用的测试代码如下:
1 public class UserAndGroupInUserTaskTest{ 2 @Before 3 public void setup() throws Exception(){ 4 //初始化7个Service 5 super.setUp(); 6 7 Group group = identityService.newGroup("deptLeader"); 8 group .setName("部门领导"); 9 group .setType("assignment"); 10 identityService.saveGroup(group); 11 12 User user = identityService.newUser("henryyan"); 13 user.setFirstName("Henry"); 14 user.setLastName("yan"); 15 user.setEmail("[email protected]"); 16 identityService.saveUser(user); 17 18 identityService.createMembership("henryyan","deptLeader"); 19 } 20 21 @After 22 public void afterInvokeTestMethod() throws Exception(){ 23 identityService.deleteMembership("henryyan","deptLeader"); 24 identityService.deleteGroup("deptLeader"); 25 identityService.deleteUser("henryyan"); 26 } 27 ... 28 }
(1)候选组
修改上面的UserTask如下:属于这个组的用户都可以签收任务。一旦有一个人签收,其他人的用户任务里就没有这个任务了。
1 <userTask id="studyUserAndGroupInUserTask" 2 name="学习用户与组在用户任务中的应用" 3 activiti:candidateGroups="deptLeader"> 4 </userTask>
在类userAndGroupTestInUserTask添加方法如下:
(2)候选人
2017.2.20activiti实战--第一章--认识activiti
学习资料:《Activiti实战》 第一章认识Activiti内容概览:讲解activiti的特点、接口概览、架构等基本信息。1.3Activiti的特点1.使用mybatis2.原生支持spring,可以轻松集成spring3.引擎的Service接口Activiti引擎提供了7大Service接口,均通... 查看详情
安卓权威编程指南-第五章学习笔记(两个activity)
学习安卓编程权威指南第五章的时候自己写了个简单的Demo来加深理解两个Activity互相传递数据的问题,然后将自己的学习笔记贴上来,如有错误还请指正。 IntentActivityDemo学习笔记题目:ActivityA登录界面(用户名、密码、登陆... 查看详情
机器学习实战第五章logistic回归(代码片段)
defgradAscent(dataMatIn,classLabels):dataMatrix=mat(dataMatIn)#converttoNumPymatrixlabelMat=mat(classLabels).transpose()#converttoNumPymatrixm,n=shape(dataMatrix)alpha=0.001maxCycles=500weights=ones(( 查看详情
spring实战第四版第五章pom.xml
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"& 查看详情
kvm虚拟化实战精讲[第五章利用virsh对虚拟机管理]
650)this.width=650;"src="http://s3.51cto.com/wyfs02/M02/89/41/wKiom1gNwm7ThEqhAAM9UfYsuuE552.jpg-wh_500x0-wm_3-wmp_4-s_1450775902.jpg"style="float:none;"title="KVM虚拟化实战精讲[第五章利用virsh对虚拟机管理]"alt="wKiom1 查看详情
第五章调优案例分析与实战
案例1:15万PV/天左右的在线文档类型网站最近更换了硬件系统,新的硬件为4个CPU、16GB物理内存,操作系统为64位CentOS5.4,Resin作为Web服务器。整个服务器暂时没有部署别的应用,所有硬件资源都可以提供给这访问量并不算太大的网站... 查看详情
《spring实战》学习笔记-第五章:构建springweb应用程序
5.1 SpringMVC起步5.1.1 跟踪SpringMVC的请求 每当用户在Web浏览器中点击链接或提交表单的时候,请求就开始工作了。对请求的工作描述就像是快递投送员。与邮局投递员或FedEx投送员一样,请求会将信息从一个地方带到另一个... 查看详情
《fpga全程进阶---实战演练》第五章基于74hc595的led操作
1基础理论部分1.1分频 分频,是的,这个概念也很重要。分频是指将一单一频率信号的频率降低为原来的1/N,就叫N分频。实现分频的电路或装置称为“分频器”,如把33MHZ的信号2分频得到16.5MHZ的信号,3分频得到11MHZ的... 查看详情
tensorflow实战google深度学习框架第五章5.2.1minister数字识别源代码(代码片段)
1importos2importtab3importtensorflowastf45print"tensorflow5.2"67fromtensorflow.examples.tutorials.mnistimportinput_data89‘‘‘10mnist=input_data.read_data_sets("/asky/tensorflow/mnist_data",one_hot=True 查看详情
zabbix专题:第五章zabbix添加触发器triggers
...://zhang789.blog.51cto.com本节目录大纲触发器(triggers)是什么?实战创建监听80端口的触发器报警级别介绍zabbix触发器依赖关系详解zabbix专题:第五章zabbix添加触发器Triggers触发器(triggers)是什么?触发器使用逻辑表 查看详情
第五章学习小结
programminginlua第五章
1,2,3,4,5,6,7,8,9,第9点非常重点。10, 查看详情
html第五章
第五章css美化网页元素1.使用CSS美化网页文本的意义: ①有效地传递页面信息。 ②使用CSS美化过的页面文本,使页面漂亮,美观,吸引用户。 &... 查看详情
离散数学第四第五章
[高项]第五章项目范围管理
第五章体检套餐项目
体检套餐管理系统: 主窗体: 套餐集合:项目集合: 查看详情
第五章
示例2publicstaticvoidmain(String[]args){ inti=1;while(i<=100); System.out.println("第"+i+"遍写:好好学习,天天向上!");i++; } }}示例4publicstaticvoidmain(String[]args){intcount=1;while(coun 查看详情
第五章循环结构
第五章 循环结构英语新识:while 循环 do 执行 index 牵引 bug 错误 debug 调试equal 相等 step 步骤 error 错误 结构框... 查看详情