/** * 保存用户信息 并且同步用户信息到activiti的identity.User,同时设置角色 * @param user * @param roleIds */ public void saveUser(User user, List roleIds, boolean synToActiviti) { accountManager.saveEntity(user); String userId = user.getId().toString(); if (synToActiviti) { List 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 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()); } } } }