Skip to content

Commit b229657

Browse files
committed
fix: 不返回root用户及root分组,并禁止修改root用户分组
1 parent e87d502 commit b229657

5 files changed

Lines changed: 17 additions & 2 deletions

File tree

src/main/java/io/github/talelin/merak/controller/cms/AdminController.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ public PageResponseVO getUsers(
6363
List<GroupDO> groups = groupService.getUserGroupsByUserId(user.getId());
6464
return new UserInfoVO(user, groups);
6565
}).collect(Collectors.toList());
66-
return ResponseUtil.generatePageResult(iPage.getTotal(), userInfos, page, count);
66+
boolean existedRoot = userInfos.removeIf(userInfo -> groupService.checkIsRootByUserId(userInfo.getId()));
67+
long total = existedRoot ? iPage.getTotal() - 1 : iPage.getTotal();
68+
return ResponseUtil.generatePageResult(total, userInfos, page, count);
6769
}
6870

6971
@PutMapping("/user/{id}/password")

src/main/java/io/github/talelin/merak/service/GroupService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,6 @@ public interface GroupService extends IService<GroupDO> {
9393
* @return 用户id
9494
*/
9595
List<Long> getGroupUserIds(Long id);
96+
97+
Long getRootGroupId();
9698
}

src/main/java/io/github/talelin/merak/service/impl/AdminServiceImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,9 @@ public boolean removePermissions(RemovePermissionsDTO dto) {
166166

167167
@Override
168168
public List<GroupDO> getAllGroups() {
169-
return groupService.list();
169+
List<GroupDO> groups = groupService.list();
170+
groups.removeIf(group -> group.getId().equals(groupService.getRootGroupId()));
171+
return groups;
170172
}
171173

172174
@Override

src/main/java/io/github/talelin/merak/service/impl/GroupServiceImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ public boolean checkIsRootByUserId(Long userId) {
8787
public boolean deleteUserGroupRelations(Long userId, List<Long> deleteIds) {
8888
if (deleteIds == null || deleteIds.isEmpty())
8989
return true;
90+
if (checkIsRootByUserId(userId)) {
91+
throw new ForbiddenException("can't modify the root user's group", 10078);
92+
}
9093
QueryWrapper<UserGroupDO> wrapper = new QueryWrapper<>();
9194
wrapper.lambda()
9295
.eq(UserGroupDO::getUserId, userId)
@@ -114,6 +117,11 @@ public List<Long> getGroupUserIds(Long id) {
114117
return list.stream().map(UserGroupDO::getUserId).collect(Collectors.toList());
115118
}
116119

120+
@Override
121+
public Long getRootGroupId() {
122+
return rootGroupId;
123+
}
124+
117125
private boolean checkGroupExistByIds(List<Long> ids) {
118126
return ids.stream().allMatch(this::checkGroupExistById);
119127
}

src/main/resources/code.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ lin.cms.code-message[10074]=root\u5206\u7EC4\u4E0D\u53EF\u5220\u9664
4646
lin.cms.code-message[10075]=guest\u5206\u7EC4\u4E0D\u53EF\u5220\u9664
4747
lin.cms.code-message[10076]=\u90AE\u7BB1\u5DF2\u88AB\u4F7F\u7528\uFF0C\u8BF7\u91CD\u65B0\u586B\u5165\u65B0\u7684\u90AE\u7BB1
4848
lin.cms.code-message[10077]=\u4E0D\u53EF\u5C06\u7528\u6237\u5206\u914D\u7ED9\u4E0D\u5B58\u5728\u7684\u5206\u7EC4
49+
lin.cms.code-message[10078]=\u4E0D\u53EF\u4FEE\u6539root\u7528\u6237\u7684\u5206\u7EC4
4950
# lin.cms.code-message[10080]=\u8BF7\u6C42\u65B9\u6CD5\u4E0D\u5141\u8BB8
5051
# lin.cms.code-message[10100]=\u5237\u65B0\u4EE4\u724C\u83B7\u53D6\u5931\u8D25
5152
# lin.cms.code-message[10110]=\u6587\u4EF6\u4F53\u79EF\u8FC7\u5927

0 commit comments

Comments
 (0)