From cdab7b985e814f5e1e126149292fc9227e36494b Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Tue, 18 Jul 2023 23:03:47 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.0=E3=80=91=E3=80=90sys=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=8C=83=E5=9B=B4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/enums/AuthExceptionEnum.java | 5 ----- .../kernel/sys/api/UserPermissionApi.java | 22 +++++++++++++++++++ .../sys/api/constants}/DataScopeTypeEnum.java | 14 ++++-------- .../exception/enums/RoleExceptionEnum.java | 7 +++++- .../impl/SysRoleDataScopeServiceImpl.java | 2 +- .../role/service/impl/SysRoleServiceImpl.java | 8 +++---- 6 files changed, 37 insertions(+), 21 deletions(-) rename {kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/enums => kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/constants}/DataScopeTypeEnum.java (87%) diff --git a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/exception/enums/AuthExceptionEnum.java b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/exception/enums/AuthExceptionEnum.java index 2a5c79f2c..ea210e116 100644 --- a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/exception/enums/AuthExceptionEnum.java +++ b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/exception/enums/AuthExceptionEnum.java @@ -83,11 +83,6 @@ public enum AuthExceptionEnum implements AbstractExceptionEnum { */ PERMISSION_RES_VALIDATE_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + AuthConstants.AUTH_EXCEPTION_STEP_CODE + "09", "权限校验失败,请检查用户是否有该资源的权限"), - /** - * 数据范围类型转化异常 - */ - DATA_SCOPE_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + AuthConstants.AUTH_EXCEPTION_STEP_CODE + "10", "数据范围类型转化异常,数据范围类型为:{}"), - /** * 权限校验失败,只有超级管理员可以授权所有数据 */ diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/UserPermissionApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/UserPermissionApi.java index 2510d280f..7d6cb6a23 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/UserPermissionApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/UserPermissionApi.java @@ -1,5 +1,7 @@ package cn.stylefeng.roses.kernel.sys.api; +import java.util.Set; + /** * 用户权限的Api * @@ -7,4 +9,24 @@ package cn.stylefeng.roses.kernel.sys.api; * @since 2023/7/18 22:51 */ public interface UserPermissionApi { + + /** + * 获取当前用户拥有的数据范围类型 + * + * 枚举值在 + * + * @author fengshuonan + * @since 2023/7/18 22:58 + */ + Integer currentUserDataScopeType(); + + /** + * 获取当前用户拥有的所有组织机构id列表 + * + * @return null或者空数组,代表用户没有访问权限,其他情况则代表用户拥有的组织机构id访问权限 + * @author fengshuonan + * @since 2023/7/18 22:54 + */ + Set currentUserOrgScopeList(); + } diff --git a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/enums/DataScopeTypeEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/constants/DataScopeTypeEnum.java similarity index 87% rename from kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/enums/DataScopeTypeEnum.java rename to kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/constants/DataScopeTypeEnum.java index 62ffd5a2a..52ffa7c84 100644 --- a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/enums/DataScopeTypeEnum.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/constants/DataScopeTypeEnum.java @@ -22,13 +22,12 @@ * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns * 6.若您的项目无法满足以上几点,可申请商业授权 */ -package cn.stylefeng.roses.kernel.auth.api.enums; +package cn.stylefeng.roses.kernel.sys.api.constants; -import cn.stylefeng.roses.kernel.auth.api.exception.AuthException; +import cn.stylefeng.roses.kernel.sys.api.exception.SysException; +import cn.stylefeng.roses.kernel.sys.api.exception.enums.RoleExceptionEnum; import lombok.Getter; -import static cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum.DATA_SCOPE_ERROR; - /** * 数据范围类型枚举,数据范围的值越小,数据权限越小 * @@ -38,11 +37,6 @@ import static cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEn @Getter public enum DataScopeTypeEnum { - /** - * 仅本人数据 - */ - SELF(10, "仅本人数据"), - /** * 本部门数据 */ @@ -86,7 +80,7 @@ public enum DataScopeTypeEnum { } } } - throw new AuthException(DATA_SCOPE_ERROR, code); + throw new SysException(RoleExceptionEnum.DATA_SCOPE_ERROR, code); } } diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/exception/enums/RoleExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/exception/enums/RoleExceptionEnum.java index 7c1e77627..d815e0ff1 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/exception/enums/RoleExceptionEnum.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/exception/enums/RoleExceptionEnum.java @@ -16,7 +16,12 @@ public enum RoleExceptionEnum implements AbstractExceptionEnum { /** * 用户没有该应用的权限,无法跳转到该应用 */ - USER_HAVE_NO_APP_ID(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "用户没有该应用的权限,无法跳转到该应用"); + USER_HAVE_NO_APP_ID(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "用户没有该应用的权限,无法跳转到该应用"), + + /** + * 数据范围类型转化异常 + */ + DATA_SCOPE_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10002", "数据范围类型转化异常,数据范围类型为:{}"); /** * 错误编码 diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleDataScopeServiceImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleDataScopeServiceImpl.java index f762b83d2..f63f46cee 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleDataScopeServiceImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleDataScopeServiceImpl.java @@ -2,12 +2,12 @@ package cn.stylefeng.roses.kernel.sys.modular.role.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; -import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi; +import cn.stylefeng.roses.kernel.sys.api.constants.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleDataScope; import cn.stylefeng.roses.kernel.sys.modular.role.enums.exception.SysRoleDataScopeExceptionEnum; import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleDataScopeMapper; diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java index 2b4c298d0..cd83bdaa1 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java @@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.extra.spring.SpringUtil; -import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; @@ -12,6 +11,7 @@ import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi; +import cn.stylefeng.roses.kernel.sys.api.constants.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants; import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRole; import cn.stylefeng.roses.kernel.sys.modular.role.enums.exception.SysRoleExceptionEnum; @@ -112,9 +112,9 @@ public class SysRoleServiceImpl extends ServiceImpl impl @Override public Integer getRoleDataScopeType(Long roleId) { - // 角色id为空,返回仅本人数据 + // 角色id为空,返回仅本部门数据 if (ObjectUtil.isEmpty(roleId)) { - return DataScopeTypeEnum.SELF.getCode(); + return DataScopeTypeEnum.DEPT.getCode(); } LambdaQueryWrapper sysRoleLambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -129,7 +129,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl } } - return DataScopeTypeEnum.SELF.getCode(); + return DataScopeTypeEnum.DEPT.getCode(); } @Override