fix(system/user):修复新建租户的管理员用户角色回显错误

This commit is contained in:
2025-09-10 20:37:13 +08:00
parent fa77fc50ee
commit 5e6290f5c5

View File

@@ -16,7 +16,6 @@
package top.continew.admin.system.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alicp.jetcache.anno.CacheInvalidate;
@@ -36,8 +35,8 @@ import top.continew.admin.system.constant.SystemConstants;
import top.continew.admin.system.mapper.RoleMapper;
import top.continew.admin.system.model.entity.RoleDO;
import top.continew.admin.system.model.query.RoleQuery;
import top.continew.admin.system.model.req.RoleReq;
import top.continew.admin.system.model.req.RolePermissionUpdateReq;
import top.continew.admin.system.model.req.RoleReq;
import top.continew.admin.system.model.resp.MenuResp;
import top.continew.admin.system.model.resp.role.RoleDetailResp;
import top.continew.admin.system.model.resp.role.RoleResp;
@@ -51,7 +50,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 角色业务实现
@@ -137,13 +135,10 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes
@Override
public List<LabelValueResp> dict(RoleQuery query, SortQuery sortQuery) {
List<String> currentUserRoleCodes = StpUtil.getRoleList();
final List<String> superRoleCodes = RoleCodeEnum.getSuperRoleCodes();
// dict查询的时候需要查询当前用户拥有的角色而不是排除避免前端显示角色数字而不是角色名称
final List<String> excludeRoleCodes = superRoleCodes.stream()
.filter(roleCode -> !currentUserRoleCodes.contains(roleCode))
.collect(Collectors.toList());
query.setExcludeRoleCodes(CollUtil.defaultIfEmpty(excludeRoleCodes, superRoleCodes));
boolean isTenantAdmin = UserContextHolder.isTenantAdmin();
query.setExcludeRoleCodes(isTenantAdmin
? List.of(RoleCodeEnum.SUPER_ADMIN.getCode())
: RoleCodeEnum.getSuperRoleCodes());
return super.dict(query, sortQuery);
}