From b9e480d465647965c175f9a5b3853ca2c364cac5 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Mon, 14 Dec 2020 23:31:03 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90resource=E3=80=91=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E8=BD=AC=E5=8C=96=E7=9A=84bug=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=A7=92=E8=89=B2=E8=B5=84=E6=BA=90=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roses/kernel/system/DataScopeApi.java | 2 ++ .../service/impl/SysResourceServiceImpl.java | 4 +--- .../role/modular/entity/SysRoleResource.java | 5 +---- ...Mapper.java => SysRoleResourceMapper.java} | 4 ++-- ...nuMapper.xml => SysRoleResourceMapper.xml} | 2 +- .../impl/SysRoleResourceServiceImpl.java | 8 ++++---- .../user/factory/LoginUserFactory.java | 19 ++++++++++++++++++- 7 files changed, 29 insertions(+), 15 deletions(-) rename kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/{SysRoleMenuMapper.java => SysRoleResourceMapper.java} (93%) rename kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/mapping/{SysRoleMenuMapper.xml => SysRoleResourceMapper.xml} (89%) diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/DataScopeApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/DataScopeApi.java index 3de2c3196..85756fac2 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/DataScopeApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/DataScopeApi.java @@ -14,6 +14,8 @@ public interface DataScopeApi { * 获取用户的数据范围 *

* 目前不考虑一个用户多角色多部门下的数据范围,只考虑一个用户只对应一个主部门下的数据范围 + *

+ * 此方法用在非超级管理员用户的获取数据范围 * * @param userId 用户id * @return 数据范围内容 diff --git a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java index 50de7f83e..55eca969a 100644 --- a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java +++ b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java @@ -1,6 +1,5 @@ package cn.stylefeng.roses.kernel.resource.modular.service.impl; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; import cn.stylefeng.roses.kernel.resource.api.ResourceReportApi; @@ -162,8 +161,7 @@ public class SysResourceServiceImpl extends ServiceImpl list = this.list(queryWrapper); for (SysResource sysResource : list) { - ResourceDefinition resourceDefinition = new ResourceDefinition(); - BeanUtil.copyProperties(sysResource, resourceDefinition); + ResourceDefinition resourceDefinition = ResourceFactory.createResourceDefinition(sysResource); resourceDefinitions.add(resourceDefinition); } diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/entity/SysRoleResource.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/entity/SysRoleResource.java index a23effb99..7e7c64bbe 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/entity/SysRoleResource.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/entity/SysRoleResource.java @@ -28,9 +28,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; import lombok.Data; -import lombok.EqualsAndHashCode; /** * 角色资源关联 @@ -38,10 +36,9 @@ import lombok.EqualsAndHashCode; * @author fengshuonan * @date 2020/11/5 下午4:30 */ -@EqualsAndHashCode(callSuper = true) @Data @TableName("sys_role_resource") -public class SysRoleResource extends BaseEntity { +public class SysRoleResource { /** * 主键 diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/SysRoleMenuMapper.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/SysRoleResourceMapper.java similarity index 93% rename from kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/SysRoleMenuMapper.java rename to kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/SysRoleResourceMapper.java index 0395bda5f..0d60388b4 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/SysRoleMenuMapper.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/SysRoleResourceMapper.java @@ -28,10 +28,10 @@ import cn.stylefeng.roses.kernel.role.modular.entity.SysRoleResource; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** - * 系统角色菜单mapper接口 + * 系统角色资源mapper接口 * * @author majianguo * @date 2020/11/5 下午4:15 */ -public interface SysRoleMenuMapper extends BaseMapper { +public interface SysRoleResourceMapper extends BaseMapper { } diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/mapping/SysRoleMenuMapper.xml b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/mapping/SysRoleResourceMapper.xml similarity index 89% rename from kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/mapping/SysRoleMenuMapper.xml rename to kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/mapping/SysRoleResourceMapper.xml index a474e9ddf..1a5371135 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/mapping/SysRoleMenuMapper.xml +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/mapper/mapping/SysRoleResourceMapper.xml @@ -1,5 +1,5 @@ - + diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleResourceServiceImpl.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleResourceServiceImpl.java index 69b2b079f..cad023ad4 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleResourceServiceImpl.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleResourceServiceImpl.java @@ -24,12 +24,12 @@ Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意 */ package cn.stylefeng.roses.kernel.role.modular.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.stylefeng.roses.kernel.role.modular.entity.SysRoleResource; -import cn.stylefeng.roses.kernel.role.modular.mapper.SysRoleMenuMapper; +import cn.stylefeng.roses.kernel.role.modular.mapper.SysRoleResourceMapper; import cn.stylefeng.roses.kernel.role.modular.service.SysRoleResourceService; import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -43,7 +43,7 @@ import java.util.List; * @date 2020/11/5 上午11:32 */ @Service -public class SysRoleResourceServiceImpl extends ServiceImpl implements SysRoleResourceService { +public class SysRoleResourceServiceImpl extends ServiceImpl implements SysRoleResourceService { @Override @Transactional(rollbackFor = Exception.class) diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/factory/LoginUserFactory.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/factory/LoginUserFactory.java index f99707d28..b194245e1 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/factory/LoginUserFactory.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/factory/LoginUserFactory.java @@ -2,6 +2,7 @@ package cn.stylefeng.roses.kernel.system.modular.user.factory; import cn.hutool.core.bean.BeanUtil; import cn.hutool.extra.spring.SpringUtil; +import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; import cn.stylefeng.roses.kernel.file.FileInfoApi; import cn.stylefeng.roses.kernel.file.FileOperatorApi; @@ -76,7 +77,11 @@ public class LoginUserFactory { // 填充用户的数据范围 DataScopeResponse dataScopeResponse = dataScopeApi.getDataScope(userId); - loginUser.setDataScopeTypes(dataScopeResponse.getDataScopeTypeEnums()); + if (loginUser.getSuperAdmin()) { + loginUser.setDataScopeTypes(getSuperAdminDataScopeTypeEnum()); + } else { + loginUser.setDataScopeTypes(dataScopeResponse.getDataScopeTypeEnums()); + } loginUser.setOrganizationIdDataScope(dataScopeResponse.getOrganizationIds()); loginUser.setUserIdDataScope(dataScopeResponse.getUserIds()); @@ -126,4 +131,16 @@ public class LoginUserFactory { return simpleRoles; } + /** + * 超级管理员的数据范围是所有数据范围 + * + * @author fengshuonan + * @date 2020/12/14 23:12 + */ + private static Set getSuperAdminDataScopeTypeEnum() { + HashSet dataScopeTypeEnums = new HashSet<>(); + dataScopeTypeEnums.add(DataScopeTypeEnum.ALL); + return dataScopeTypeEnums; + } + }