From cda6327ba968d7cce6695de0da33302403526430 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Tue, 23 Jul 2024 17:15:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=EF=BC=8C=E7=94=A8=E4=BA=8E=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E7=99=BB=E5=85=A5=E7=9A=84=E4=B8=8D=E5=90=8C=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8=E5=AF=B9=E5=BA=94=E7=9A=84=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/auth/AuthController.java | 13 +++++++++++-- .../controller/admin/permission/RoleController.java | 2 +- .../admin/permission/vo/role/RoleSaveReqVO.java | 4 ++++ .../system/dal/mysql/permission/RoleMapper.java | 1 + .../system/service/permission/RoleServiceImpl.java | 5 +---- 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java index 4f7672d3..ed475b54 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java @@ -96,7 +96,11 @@ public class AuthController { @GetMapping("/get-permission-info") @Operation(summary = "获取登录用户的权限信息") - public CommonResult getPermissionInfo() { + public CommonResult getPermissionInfo(HttpServletRequest request) { + + // 获得角色类型 + String type = request.getHeader("type"); + // 1.1 获得用户信息 AdminUserDO user = userService.getUser(getLoginUserId()); if (user == null) { @@ -109,7 +113,12 @@ public class AuthController { return success(AuthConvert.INSTANCE.convert(user, Collections.emptyList(), Collections.emptyList())); } List roles = roleService.getRoleList(roleIds); - roles.removeIf(role -> !CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())); // 移除禁用的角色 + roles.removeIf(role -> !CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus()) + || !type.equals(role.getType().toString())); // 移除禁用和类型不一致的角色 + + if (CollUtil.isEmpty(roles)) { + return success(AuthConvert.INSTANCE.convert(user, Collections.emptyList(), Collections.emptyList())); + } // 1.3 获得菜单列表 Set menuIds = permissionService.getRoleMenuListByRoleId(convertSet(roles, RoleDO::getId)); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java index 14437a6f..473354c3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java @@ -41,7 +41,7 @@ public class RoleController { @Operation(summary = "创建角色") @PreAuthorize("@ss.hasPermission('system:role:create')") public CommonResult createRole(@Valid @RequestBody RoleSaveReqVO createReqVO) { - return success(roleService.createRole(createReqVO, null)); + return success(roleService.createRole(createReqVO, createReqVO.getType())); } @PutMapping("/update") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java index 5a59b5f4..85e6a4ec 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java @@ -24,6 +24,10 @@ public class RoleSaveReqVO { @Schema(description = "角色编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ADMIN") private String code; + @Schema(description = "角色类型 字典值 | 参考system_role_type", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "角色类型不能为空") + private Integer type; + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @NotNull(message = "显示顺序不能为空") private Integer sort; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java index 2e4da2bb..7f4591eb 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java @@ -21,6 +21,7 @@ public interface RoleMapper extends BaseMapperX { .likeIfPresent(RoleDO::getCode, reqVO.getCode()) .eqIfPresent(RoleDO::getStatus, reqVO.getStatus()) .betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime()) + .orderByAsc(RoleDO::getType) .orderByAsc(RoleDO::getSort)); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java index 5b9576f2..bcd688cc 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.system.service.permission; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.extra.spring.SpringUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -15,7 +14,6 @@ import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMapper; import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum; import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum; -import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; import com.google.common.annotations.VisibleForTesting; import lombok.extern.slf4j.Slf4j; import org.springframework.cache.annotation.CacheEvict; @@ -53,7 +51,7 @@ public class RoleServiceImpl implements RoleService { validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null); // 插入到数据库 RoleDO role = BeanUtils.toBean(createReqVO, RoleDO.class); - role.setType(ObjectUtil.defaultIfNull(type, RoleTypeEnum.CUSTOM.getType())); + role.setType(type); role.setStatus(CommonStatusEnum.ENABLE.getStatus()); role.setDataScope(DataScopeEnum.ALL.getScope()); // 默认可查看所有数据。原因是,可能一些项目不需要项目权限 roleMapper.insert(role); @@ -172,7 +170,6 @@ public class RoleServiceImpl implements RoleService { return roleMapper.selectById(id); } - @Override public List getRoleListByStatus(Collection statuses) { return roleMapper.selectListByStatus(statuses);