Skip to content

Commit 4f38218

Browse files
committed
fix(system/user): 修复用户管理水平越权错误
Closes #IC9YO9
1 parent c242a9f commit 4f38218

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

continew-common/src/main/java/top/continew/admin/common/config/mybatis/DataPermissionMapper.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ public interface DataPermissionMapper<T> extends BaseMapper<T> {
4040
* @param queryWrapper 实体对象封装操作类(可以为 null)
4141
* @return 全部记录
4242
*/
43-
@Override
4443
@DataPermission
44+
@Override
4545
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
4646

4747
/**
@@ -51,7 +51,18 @@ public interface DataPermissionMapper<T> extends BaseMapper<T> {
5151
* @param queryWrapper 实体对象封装操作类(可以为 null)
5252
* @return 全部记录(并翻页)
5353
*/
54-
@Override
5554
@DataPermission
55+
@Override
5656
List<T> selectList(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
57+
58+
/**
59+
* 根据 ID 删除
60+
*
61+
* @param obj 主键ID或实体
62+
* @param useFill 是否填充
63+
* @return 删除个数
64+
*/
65+
@DataPermission
66+
@Override
67+
int deleteById(Object obj, boolean useFill);
5768
}

continew-module-system/src/main/java/top/continew/admin/system/service/impl/UserServiceImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,9 @@ public void delete(List<Long> ids) {
203203
.select(UserDO::getNickname, UserDO::getIsSystem)
204204
.in(UserDO::getId, ids)
205205
.list();
206+
List<Long> idList = list.stream().map(UserDO::getId).toList();
207+
Collection<Long> subtractIds = CollUtil.subtract(ids, idList);
208+
CheckUtils.throwIfNotEmpty(subtractIds, "所选用户 [{}] 不存在", CollUtil.join(subtractIds, StringConstants.COMMA));
206209
Optional<UserDO> isSystemData = list.stream().filter(UserDO::getIsSystem).findFirst();
207210
CheckUtils.throwIf(isSystemData::isPresent, "所选用户 [{}] 是系统内置用户,不允许删除", isSystemData.orElseGet(UserDO::new)
208211
.getNickname());
@@ -392,7 +395,7 @@ public void updateRole(UserRoleUpdateReq updateReq, Long id) {
392395
public String updateAvatar(MultipartFile avatarFile, Long id) throws IOException {
393396
String avatarImageType = FileNameUtil.extName(avatarFile.getOriginalFilename());
394397
CheckUtils.throwIf(!StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportSuffix), "头像仅支持 {} 格式的图片", String
395-
.join(StringConstants.CHINESE_COMMA, avatarSupportSuffix));
398+
.join(StringConstants.COMMA, avatarSupportSuffix));
396399
// 上传新头像
397400
UserDO user = super.getById(id);
398401
FileInfo fileInfo = fileService.upload(avatarFile, avatarPath);

0 commit comments

Comments
 (0)