Skip to content

Instantly share code, notes, and snippets.

@henryyan
Created March 24, 2012 12:56
Show Gist options
  • Save henryyan/2182444 to your computer and use it in GitHub Desktop.
Save henryyan/2182444 to your computer and use it in GitHub Desktop.
synUserToActiviti
/**
* 保存用户信息 并且同步用户信息到activiti的identity.User,同时设置角色
* @param user
* @param roleIds
*/
public void saveUser(User user, List<Long> roleIds, boolean synToActiviti) {
accountManager.saveEntity(user);
String userId = user.getId().toString();
if (synToActiviti) {
List<org.activiti.engine.identity.User> activitiUsers = identityService.createUserQuery().userId(userId).list();
if (activitiUsers.size() == 1) {
//更新信息
org.activiti.engine.identity.User activitiUser = activitiUsers.get(0);
activitiUser.setFirstName(user.getName());
activitiUser.setLastName("");
activitiUser.setPassword(user.getPassword());
activitiUser.setEmail(user.getEmail());
identityService.saveUser(activitiUser);
// 删除用户的membership
List<Group> activitiGroups = identityService.createGroupQuery().groupMember(userId).list();
for (Group group : activitiGroups) {
identityService.deleteMembership(userId, group.getId());
}
// 添加membership
for (Long roleId : roleIds) {
Role role = roleManager.getEntity(roleId);
identityService.createMembership(userId, role.getEnName());
}
} else {
org.activiti.engine.identity.User newUser = identityService.newUser(userId);
newUser.setFirstName(user.getName());
newUser.setLastName("");
newUser.setPassword(user.getPassword());
newUser.setEmail(user.getEmail());
identityService.saveUser(newUser);
// 添加membership
for (Long roleId : roleIds) {
Role role = roleManager.getEntity(roleId);
identityService.createMembership(userId, role.getEnName());
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment