diff --git a/src/main/java/com/senmesh/common/util/UserContextHolder.java b/src/main/java/com/senmesh/common/util/UserContextHolder.java index fb3d865..9c101ac 100644 --- a/src/main/java/com/senmesh/common/util/UserContextHolder.java +++ b/src/main/java/com/senmesh/common/util/UserContextHolder.java @@ -150,7 +150,7 @@ public class UserContextHolder { */ public static boolean isSuperior() { IUserDetail userDTO = getLoginUser(); - return userDTO != null && userDTO.getSupeiror(); + return userDTO != null && Boolean.TRUE.equals(userDTO.getSupeiror()); } /** diff --git a/src/main/java/com/senmesh/usercenter/user/service/impl/UserServiceImpl.java b/src/main/java/com/senmesh/usercenter/user/service/impl/UserServiceImpl.java index 413d646..8745a40 100644 --- a/src/main/java/com/senmesh/usercenter/user/service/impl/UserServiceImpl.java +++ b/src/main/java/com/senmesh/usercenter/user/service/impl/UserServiceImpl.java @@ -925,11 +925,15 @@ public class UserServiceImpl implements UserService { @Transactional @AutoUnLock public Boolean modifyOrgUserInfo(OrgUserEditDTO orgUserEditDTO) { - Assert.isTrue(UserContextHolder.isSuperior(), "当前用户无操作权限"); + // 平台超管可修改全部用户,机构管理员仅可修改本机构用户 + Assert.isTrue(UserContextHolder.isSuperior() || UserContextHolder.isAdministrator(), + "当前用户无操作权限"); ValidateUtils.validateBiz(orgUserEditDTO); Long userId = orgUserEditDTO.getId(); + this.checkOrgScopeOfOperateUser(userId); UserDTO userDto = findUserDTO(UserQueryDTO.builder().id(userId).build()); Assert.notNull(userDto, userId + "-用户不可用"); + Assert.isTrue(!Boolean.TRUE.equals(userDto.getSupeiror()), "不能修改超级管理员账号"); User user = new User(); user.setId(userId); //校验