文档章节

Activiti源码浅析:Activiti的活动授权机制

Yemon
 Yemon
发布于 2016/05/17 10:32
字数 242
阅读 6
收藏 0
点赞 2
评论 0

1. IdentityLink与TaskEntity

An identity link is used to associate a task with a certain identity. For example: - a user can be an assignee (= identity link type) for a task - a group can be a candidate-group (= identity link type) for a task

TaskEntity包含了一系列的IdentityLink操作方法:

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. public IdentityLinkEntity addIdentityLink(String userId, String groupId, String type) {  
  2.    IdentityLinkEntity identityLinkEntity = new IdentityLinkEntity();  
  3.    getIdentityLinks().add(identityLinkEntity);  
  4.    identityLinkEntity.setTask(this);  
  5.    identityLinkEntity.setUserId(userId);  
  6.    identityLinkEntity.setGroupId(groupId);  
  7.    identityLinkEntity.setType(type);  
  8.    identityLinkEntity.insert();  
  9.    if (userId != null && processInstanceId != null) {  
  10.      getProcessInstance().involveUser(userId, IdentityLinkType.PARTICIPANT);  
  11.    }  
  12.    return identityLinkEntity;  
  13.  }  

注意,IdentityLink有一个Type,有一些默认的Type:

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. public void addCandidateUser(String userId) {  
  2.   addIdentityLink(userId, null, IdentityLinkType.CANDIDATE);  
  3. }  


[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. public void addCandidateGroup(String groupId) {  
  2.   addIdentityLink(null, groupId, IdentityLinkType.CANDIDATE);  
  3. }  


2. IdentityLink与权限过滤

如下查询语句对应于“用户kermit待签收任务列表”的调用过程:

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. Preparing: select distinct RES.* from AC  
  2. T_RU_TASK RES inner join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_ WHERE RES.ASSIGNEE_ is null and I.TYPE_ = 'candidate' and ( I.USER_ID_ = ? or I.GROUP_ID_ IN ( ? , ? ) )   
  3.   
  4. Parameters: kermit(String), admin(String), management(String)  

其中admin和management来自于用户群组关系查询接口:

UserEntityManager.findGroupsByUser("kermit")

© 著作权归作者所有

共有 人打赏支持
Yemon
粉丝 10
博文 320
码字总数 22799
作品 0
广州
架构师
基于 Activiti 的工作流引擎--openwebflow

OpenWebFlow是基于Activiti(官方网站http://activiti.org/)扩展的工作流引擎,它扩展的功能包括: 完全接管了Activiti对活动(activity)权限的管理。Activiti允许在设计model的时候指定每...

白乔 ⋅ 2016/09/27 ⋅ 1

推荐csdn里的几篇activiti基础入门及提高的博客

昨天有个网友加qq询问我有没有非maven搭建的activiti项目的demo,因为我博客中写了一个用maven,我当时没有,于是晚上回家尝试了一下,结果比较容易就实现了。 之后和那个网友聊了一下,他说...

涂宗勋 ⋅ 2016/04/20 ⋅ 0

Alfresco 宣布开始Activiti业务流程管理BPM引擎开发项目

Alfresco软件今天宣布开发Activiti业务流程管理(BPM)开源项目的开始,其首席架构师由业务流程管理BPM的专家,汤姆.贝延斯担任。该Activiti计划是一项新的基于Apache许可的开源BPM平台,从基...

YipChooli ⋅ 2010/06/07 ⋅ 0

activiti 常见问题总结

activiti常见的问题 1、activiti能否使用自己的用户表,而不是用系统默认的actiduser表呢? 答案:肯定能 http://my.oschina.net/winHerson/blog/118172 2、请问,activiti explorer 源代码在...

cookqq ⋅ 2014/03/14 ⋅ 0

Activiti 5.11 发布,业务流程管理

1. 圣诞大礼包 这是我第一次为Activiti的发布撰文,因为这次的发布我觉得很有必要和大家分享,这其中包含了我期待的新特性和已知问题的修复;而且还有一个重量级的模块Activiti Modeler。 在...

咖啡兔 ⋅ 2012/12/06 ⋅ 15

Activiti Designer 5.12.0 发布

Activiti 5.12发布之后Activiti Designer迎来了5.12.0版本,该版本虽然没有添加对BPMN2.0规范支持,但是在使用方面大大提升,很值得升级! 1. 打开无BPMN DI信息的流程文件自动排列 可能很多...

咖啡兔 ⋅ 2013/03/25 ⋅ 5

activiti源码编译

分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519) activiti源码编译,近期有人问activiti 源码编译的一些问题,这里打算总结一下。因为...

分享达人 ⋅ 2016/05/03 ⋅ 0

ACTIVITI5 事件监控类里的事务如何控制

activiti5 配置的事件监控类里面有数据库的处理,但是发现不能和工程的事务统一。已经配置的activiti5的事务,除了事件监控类里面的事务外,引擎其他事务和工程事务一致,但是配置的事件控制...

星忆 ⋅ 2013/07/12 ⋅ 1

Activiti自定义设计器

原文地址:www.shareniu.com/topic/content/40.htm Activiti自定义设计器 在使用Activiti的时候,需要绘制流程文档,可以使用Activiti提供的Eclipse插件或者idea插件,抑或使用Web版的流程设...

分享达人 ⋅ 2017/01/19 ⋅ 0

kft-activiti-demo 1.13.0 发布,Activiti 快速入门 Demo

时隔一年再次更新,主要是针对Activiti 5.17+版本做了支持,自动初始化Demo数据等 Activiti Modeler从5.17开始结构和整合到项目的方式有些变化,另外官方Activiti Explorer整合的方式也有Spr...

咖啡兔 ⋅ 2015/11/25 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

UI ,前端框架选型

Flat-UI

miaojiangmin ⋅ 8分钟前 ⋅ 0

Istio Service Mesh 教程

Istio Service Mesh 教程 作者 宋净超 | 5400字 | 阅读大约需要11分钟 | 归档于istio | 发表于 2018-05-22 标签 #Istio #教程,来自 https://servicemesher.github.io/blog/istio-service-m...

openthings ⋅ 13分钟前 ⋅ 0

scala swing

scala swing组件的库 https://github.com/scala/scala-swing scala swing的API文档 https://www.scala-lang.org/api/2.9.1/scala/swing/package.html...

whoisliang ⋅ 17分钟前 ⋅ 0

CentOS安装配置Nginx

安装依赖 yum install gcc yum install pcre-devel yum install zlib zlib-devel yum install openssl openssl-devel //一键安装上面四个依赖 yum -y install gcc zlib zlib-devel pcre-deve......

临江仙卜算子 ⋅ 24分钟前 ⋅ 0

开源 java CMS - FreeCMS2.8 依申请公开

项目地址:http://www.freeteam.cn/ 依申请公开 1. 转交申请公开 用户可以把申请公开转交给其他人办理,系统会记录此申请公开的转交记录。 注意:同时只能转交一个申请公开。 选择需要转交的...

freeteam ⋅ 28分钟前 ⋅ 0

以太坊 web3.py 签名转账

以太坊 web3.py 签名转账 本文节选自电子书《Netkiller Blockchain 手札》 Netkiller Blockchain 手札 Mr. Neo Chan, 陈景峯(BG7NYT) 中国广东省深圳市龙华新区民治街道溪山美地 518131 +86...

netkiller- ⋅ 33分钟前 ⋅ 0

年薪40W的程序员必会的技术有哪些?

很多人在问我,程序员如何拿高薪,如何做到年薪40W+,其实总结出来还是一句话,你的技术决定你的能力已经薪资。 那么什么样的技术人才才能拿到一份Java行业里面的高薪呢? 下面是我的一个总结...

码代码的小司机 ⋅ 34分钟前 ⋅ 0

jesque-spring使用及源码分析

1.使用 jesque结合spring使用,步骤如下: 1.1 在项目中添加maven依赖 <dependency> <groupId>net.lariverosc</groupId> <artifactId>jesque-spring</artifactId> <version>1.0.0</ve......

Funcy1122 ⋅ 35分钟前 ⋅ 0

OSChina 周二乱弹 —— 加班的代码不要枉费了我的童子功

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《29》- 未完成乐队 《29》- 未完成乐队 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :#看球提醒# 02:00 巴西v...

小小编辑 ⋅ 今天 ⋅ 16

Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

CodeSheep ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部