扩展activiti使用自己的用户表和群组表 http://my.oschina.net/winHerson/blog/118172
Activiti设置流程发起用户信息 http://www.kafeitu.me/activiti/2012/05/20/set-process-start-user.html
由于版本已经升级,所以只能参考上面地址
配置文件 processEngineConfiguration
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<!-- 自定义工厂 --> <property name="customSessionFactories"> <list> <bean class="com.pandy.activiti.dao.impl.CustomGroupManagerFactory" > <property name="groupManager"> <bean class="com.pandy.activiti.manager.impl.CustomGroupEntityManager"/> </property> </bean> <bean class="com.pandy.activiti.dao.impl.CustomUserManagerFactory" > <property name="userManager"> <bean class="com.pandy.activiti.manager.impl.CustomUserEntityManager"/> </property> </bean> </list> </property> |
两个管理器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
package com.pandy.activiti.manager.impl;/** * Created by pandy on 16-8-20. */ import org.activiti.engine.identity.Group; import org.activiti.engine.impl.persistence.entity.GroupEntityManager; import java.util.List; /** * 项目名称: workspace * * 功能说明: 自定义的Activiti用户组管理器 * 注意:如果想使用自己定义的用户组表,请重新这个 * * findGroupById(final String groupCode) * findGroupsByUser(final String userCode) * * ,这两个方法是activiti查询的用户组的方法。 * 创建者: Pandy, * 邮箱: panyongzheng@163.com, 1453261799@qq.com * 版权: * 官网: * 创建日期: 16-8-20. * 创建时间: 上午9:33. * 修改历史: * ----------------------------------------------- */ public class CustomGroupEntityManager extends GroupEntityManager { public CustomGroupEntityManager() { super(); } @Override public List<Group> findGroupsByUser(String userId) { return super.findGroupsByUser(userId); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
package com.pandy.activiti.manager.impl;/** * Created by pandy on 16-8-20. */ import org.activiti.engine.identity.Group; import org.activiti.engine.identity.User; import org.activiti.engine.impl.persistence.entity.UserEntityManager; import java.util.List; /** * 项目名称: workspace * * 功能说明: 自定义的Activiti用户管理器 * 注意:如果想使用自己定义的用户表, * 请重新这个 * * findUserById(final String userCode) * findGroupsByUser(final String userCode) * * 这两个方法是activiti查询的用户的方法 * 创建者: Pandy, * 邮箱: panyongzheng@163.com, 1453261799@qq.com * 版权: * 官网: * 创建日期: 16-8-20. * 创建时间: 上午9:56. * 修改历史: * ----------------------------------------------- */ public class CustomUserEntityManager extends UserEntityManager { public CustomUserEntityManager() { super(); } @Override public User findUserById(String userId) { return super.findUserById(userId); } @Override public List<Group> findGroupsByUser(String userId) { return super.findGroupsByUser(userId); } } |
两个工厂:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
package com.pandy.activiti.dao.impl;/** * Created by pandy on 16-8-20. */ import org.activiti.engine.impl.interceptor.Session; import org.activiti.engine.impl.interceptor.SessionFactory; import org.activiti.engine.impl.persistence.entity.GroupEntity; import org.activiti.engine.impl.persistence.entity.GroupEntityManager; import org.springframework.beans.factory.annotation.Autowired; /** * 项目名称: workspace * 功能说明: 自定义的Activiti用户组会话工厂 * 创建者: Pandy, * 邮箱: panyongzheng@163.com, 1453261799@qq.com * 版权: * 官网: * 创建日期: 16-8-20. * 创建时间: 上午9:48. * 修改历史: * ----------------------------------------------- */ public class CustomGroupManagerFactory implements SessionFactory { private GroupEntityManager groupManager; @Autowired public void setGroupManager(GroupEntityManager groupManager) { this.groupManager = groupManager; } public Class<?> getSessionType() { // 返回原始的GroupManager类型 return GroupEntity.class; } public Session openSession() { // 返回自定义的GroupManager实例 return groupManager; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
package com.pandy.activiti.dao.impl;/** * Created by pandy on 16-8-20. */ import org.activiti.engine.impl.interceptor.Session; import org.activiti.engine.impl.interceptor.SessionFactory; import org.activiti.engine.impl.persistence.entity.UserEntityManager; import org.springframework.beans.factory.annotation.Autowired; /** * 项目名称: workspace * 功能说明: 自定义的Activiti用户会话工厂 * 创建者: Pandy, * 邮箱: panyongzheng@163.com, 1453261799@qq.com * 版权: * 官网: * 创建日期: 16-8-20. * 创建时间: 上午9:57. * 修改历史: * ----------------------------------------------- */ public class CustomUserManagerFactory implements SessionFactory { private UserEntityManager userManager; @Autowired public void setUserManager(UserEntityManager userManager) { this.userManager = userManager; } public Class<?> getSessionType() { // 返回原始的UserManager类型 return UserEntityManager.class; } public Session openSession() { // 返回自定义的UserManager实例 return userManager; } } |