Skip to content

Commit 2d10468

Browse files
author
pedro
committed
merge from ban-root
2 parents 45f7f49 + 2c41177 commit 2d10468

7 files changed

Lines changed: 35 additions & 37 deletions

File tree

src/main/java/io/github/talelin/merak/mapper/UserMapper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ public interface UserMapper extends BaseMapper<UserDO> {
3535
*
3636
* @param pager 分页
3737
* @param groupId 分组id
38+
* @param rootGroupId 超级用户组id(不返回超级用户组的用户)
3839
* @return 分页数据
3940
*/
40-
IPage<UserDO> selectPageByGroupId(Page pager, Long groupId);
41+
IPage<UserDO> selectPageByGroupId(Page pager, Long groupId, Long rootGroupId);
4142
}

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,18 @@ public class AdminServiceImpl implements AdminService {
4545
@Value("${group.guest.id}")
4646
private Long guestGroupId;
4747

48+
@Value("${user.root.id}")
49+
private Long rootUserId;
50+
4851
@Override
4952
public IPage<UserDO> getUserPageByGroupId(Long groupId, Long count, Long page) {
5053
Page pager = new Page(page, count);
5154
IPage<UserDO> iPage;
5255
// 如果group_id为空,则以分页的形式返回所有用户
5356
if (groupId == null) {
54-
iPage = userService.page(pager);
57+
QueryWrapper<UserDO> wrapper = new QueryWrapper<>();
58+
wrapper.lambda().ne(UserDO::getId, rootUserId);
59+
iPage = userService.page(pager, wrapper);
5560
} else {
5661
iPage = userService.getUserPageByGroupId(pager, groupId);
5762
}
@@ -166,7 +171,10 @@ public boolean removePermissions(RemovePermissionsDTO dto) {
166171

167172
@Override
168173
public List<GroupDO> getAllGroups() {
169-
return groupService.list();
174+
QueryWrapper<GroupDO> wrapper = new QueryWrapper<>();
175+
wrapper.lambda().ne(GroupDO::getId, rootGroupId);
176+
List<GroupDO> groups = groupService.list(wrapper);
177+
return groups;
170178
}
171179

172180
@Override

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

Lines changed: 3 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)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public boolean checkUserExistById(Long id) {
186186

187187
@Override
188188
public IPage<UserDO> getUserPageByGroupId(Page pager, Long groupId) {
189-
return this.baseMapper.selectPageByGroupId(pager, groupId);
189+
return this.baseMapper.selectPageByGroupId(pager, groupId, rootGroupId);
190190
}
191191

192192
private void checkGroupsExist(List<Long> ids) {

src/main/resources/banner.txt

Lines changed: 17 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,17 @@
1-
////////////////////////////////////////////////////////////////////
2-
______ _
3-
| ___ \ | |
4-
| |_/ /__ __| |_ __ ___
5-
| __/ _ \/ _` | '__/ _ \
6-
| | | __/ (_| | | | (_) |
7-
\_| \___|\__,_|_| \___/
8-
9-
////////////////////////////////////////////////////////////////////
10-
// _ooOoo_ //
11-
// o8888888o //
12-
// 88" . "88 //
13-
// (| ^_^ |) //
14-
// O\ = /O //
15-
// ____/`---'\____ //
16-
// .' \\| |// `. //
17-
// / \\||| : |||// \ //
18-
// / _||||| -:- |||||- \ //
19-
// | | \\\ - /// | | //
20-
// | \_| ''\---/'' | | //
21-
// \ .-\__ `-` ___/-. / //
22-
// ___`. .' /--.--\ `. . ___ //
23-
// ."" '< `.___\_<|>_/___.' >'"". //
24-
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
25-
// \ \ `-. \_ __\ /__ _/ .-` / / //
26-
// ========`-.____`-.___\_____/___.-`____.-'======== //
27-
// `=---=' //
28-
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
29-
// 佛祖保佑 永不宕机 永无BUG //
30-
////////////////////////////////////////////////////////////////////
31-
解放生产力
32-
////////////////////////////////////////////////////////////////////
1+
///////////////////////////////////////////////////////////////////////////
2+
// _ _ _____ _ __ _____ //
3+
// | | (_) / ____| \/ |/ ____| //
4+
// | | _ _ __ | | | \ / | (___ //
5+
// | | | | '_ \ | | | |\/| |\___ \ //
6+
// | |____| | | | | | |____| | | |____) | //
7+
// |______|_|_| |_| \_____|_| |_|_____/ //
8+
// //
9+
///////////////////////////////////////////////////////////////////////////
10+
// _______ _______ _ _ _ //
11+
// |__ __| |__ __| | | | | (_) //
12+
// | | ___ __ _ _ __ ___ | | __ _| | ___| | _ _ __ //
13+
// | |/ _ \/ _` | '_ ` _ \ | |/ _` | |/ _ \ | | | '_ \ //
14+
// | | __/ (_| | | | | | | | | (_| | | __/ |____| | | | | //
15+
// |_|\___|\__,_|_| |_| |_| |_|\__,_|_|\___|______|_|_| |_| //
16+
// //
17+
///////////////////////////////////////////////////////////////////////////

src/main/resources/mapper/UserMapper.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
SELECT ug.user_id
3333
FROM lin_user_group AS ug
3434
WHERE ug.group_id = #{groupId}
35+
AND ug.group_id != #{rootGroupId}
3536
)
3637
AND u.delete_time IS NULL
3738
</select>

src/test/java/io/github/talelin/merak/mapper/UserMapperTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void selectPageByGroupId() {
7373
userGroupMapper.insert(new UserGroupDO(userDO.getId(), group.getId()));
7474

7575
Page page = new Page(0, 10);
76-
IPage<UserDO> iPage = userMapper.selectPageByGroupId(page, group.getId());
76+
IPage<UserDO> iPage = userMapper.selectPageByGroupId(page, group.getId(), 1L);
7777
assertTrue(iPage.getTotal() > 0);
7878
boolean anyMatch = iPage.getRecords().stream().anyMatch(it -> it.getUsername().equals(username));
7979
assertTrue(anyMatch);

0 commit comments

Comments
 (0)