|
|
@@ -175,8 +175,25 @@ public class UserServiceImpl implements UserService {
|
|
|
newUser.setUserIdcode(user.getUserIdcode());
|
|
|
newUser.setEnterprise(SystemSession.getUser().getEnterprise());
|
|
|
newUser.setIp(SystemSession.getUser().getIp());
|
|
|
- if (!CollectionUtils.isEmpty(user.getRoles())) {// 修改用户角色
|
|
|
- newUser.setRoles(user.getRoles());
|
|
|
+ // 修改用户角色,只对用户的当前企业的角色进行修改
|
|
|
+ if (!CollectionUtils.isEmpty(user.getRoles())) {
|
|
|
+ Set<Role> existRoles = newUser.getRoles();
|
|
|
+ if(!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
|
|
|
+ Iterator<Role> iterator = existRoles.iterator();
|
|
|
+ Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ Role role = iterator.next();
|
|
|
+ if(role.getEnUU().equals(currentEnuu)) {
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ existRoles = new HashSet<Role>();
|
|
|
+ }
|
|
|
+ for(Role role : user.getRoles()) {
|
|
|
+ existRoles.add(role);
|
|
|
+ }
|
|
|
+ newUser.setRoles(existRoles);
|
|
|
}
|
|
|
try {
|
|
|
// if
|
|
|
@@ -202,6 +219,7 @@ public class UserServiceImpl implements UserService {
|
|
|
}
|
|
|
if (SystemSession.getUser().getUserUU().equals(newUser.getUserUU())) {
|
|
|
newUser.setCurrentEnterprise(SystemSession.getUser().getEnterprise().getUu());
|
|
|
+ newUser.setCurrentEnterpriseRoles();
|
|
|
SystemSession.setUser(newUser);
|
|
|
}
|
|
|
return newUser;
|