mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 10:57:13 +08:00 
			
		
		
		
	fix(system/user): 修复用户管理水平越权错误
This commit is contained in:
		| @@ -85,9 +85,8 @@ public interface UserService extends BaseService<UserResp, UserDetailResp, UserQ | ||||
|      * @param avatar 头像文件 | ||||
|      * @param id     ID | ||||
|      * @return 新头像路径 | ||||
|      * @throws IOException / | ||||
|      */ | ||||
|     String updateAvatar(MultipartFile avatar, Long id) throws IOException; | ||||
|     String updateAvatar(MultipartFile avatar, Long id); | ||||
|  | ||||
|     /** | ||||
|      * 修改基础信息 | ||||
|   | ||||
| @@ -169,7 +169,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | ||||
|         DisEnableStatusEnum newStatus = req.getStatus(); | ||||
|         CheckUtils.throwIf(DisEnableStatusEnum.DISABLE.equals(newStatus) && ObjectUtil.equal(id, UserContextHolder | ||||
|             .getUserId()), "不允许禁用当前用户"); | ||||
|         UserDO oldUser = super.getById(id); | ||||
|         UserDO oldUser = this.getById(id); | ||||
|         if (Boolean.TRUE.equals(oldUser.getIsSystem())) { | ||||
|             CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, newStatus, "[{}] 是系统内置用户,不允许禁用", oldUser | ||||
|                 .getNickname()); | ||||
| @@ -370,7 +370,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | ||||
|  | ||||
|     @Override | ||||
|     public void resetPassword(UserPasswordResetReq req, Long id) { | ||||
|         super.getById(id); | ||||
|         this.getById(id); | ||||
|         baseMapper.lambdaUpdate() | ||||
|             .set(UserDO::getPassword, req.getNewPassword()) | ||||
|             .set(UserDO::getPwdResetTime, LocalDateTime.now()) | ||||
| @@ -380,7 +380,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | ||||
|  | ||||
|     @Override | ||||
|     public void updateRole(UserRoleUpdateReq updateReq, Long id) { | ||||
|         super.getById(id); | ||||
|         this.getById(id); | ||||
|         List<Long> roleIds = updateReq.getRoleIds(); | ||||
|         // 保存用户和角色关联 | ||||
|         userRoleService.assignRolesToUser(roleIds, id); | ||||
| @@ -389,7 +389,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String updateAvatar(MultipartFile avatarFile, Long id) throws IOException { | ||||
|     public String updateAvatar(MultipartFile avatarFile, Long id) { | ||||
|         String avatarImageType = FileNameUtil.extName(avatarFile.getOriginalFilename()); | ||||
|         CheckUtils.throwIf(!StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportSuffix), "头像仅支持 {} 格式的图片", String | ||||
|             .join(StringConstants.CHINESE_COMMA, avatarSupportSuffix)); | ||||
| @@ -731,4 +731,16 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | ||||
|             UserContextHolder.setContext(userContext); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 根据 ID 获取用户信息(数据权限) | ||||
|      * | ||||
|      * @param id ID | ||||
|      * @return 用户信息 | ||||
|      */ | ||||
|     private UserDO getById(Long id) { | ||||
|         UserDO user = baseMapper.lambdaQuery().eq(UserDO::getId, id).one(); | ||||
|         CheckUtils.throwIfNull(user, "用户不存在"); | ||||
|         return user; | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user