mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-11 16:57:12 +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