From 14248501e6f5f3dcd3954f42c95ad71f90df73fa Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Mon, 26 Dec 2022 15:45:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=93=81=E7=89=8C=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysDictController.java | 21 +++++++++++ .../system/controller/SysRoleController.java | 15 +++++--- .../enums/AdmininstratorAuthRoleEnum.java | 36 +++++++++++++++++++ .../impl/ProjectLibraryBaseServiceImpl.java | 22 ++++++------ 4 files changed, 79 insertions(+), 15 deletions(-) create mode 100644 jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/AdmininstratorAuthRoleEnum.java diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java index 255863335..f8327a592 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java @@ -16,6 +16,7 @@ import com.jero.common.system.vo.LoginUser; import com.jero.common.util.ImportExcelUtil; import com.jero.common.util.SqlInjectionUtil; import com.jero.common.util.oConvertUtils; +import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.enums.FixedFieldEnum; import com.jero.modules.enums.IsTagDict; import com.jero.modules.system.entity.SysDict; @@ -23,8 +24,10 @@ import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.model.SysDictTree; import com.jero.modules.system.model.TreeSelectModel; +import com.jero.modules.system.service.IProjectUserBrandService; import com.jero.modules.system.service.ISysDictItemService; import com.jero.modules.system.service.ISysDictService; +import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.vo.SysDictPage; import com.jero.modules.utils.HanYuPinYinUtil; import io.swagger.annotations.Api; @@ -53,6 +56,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.*; +import java.util.stream.Collectors; /** *

@@ -74,6 +78,10 @@ public class SysDictController { private ISysDictItemService sysDictItemService; @Autowired public RedisTemplate redisTemplate; + @Autowired + private ISysUserService sysUserService; + @Autowired + private IProjectUserBrandService projectUserBrandService; @RequestMapping(value = "/page", method = RequestMethod.GET) @ApiOperation(value = "字典控制器-分页列表查询", notes = "字典控制器-分页列表查询") @@ -757,4 +765,17 @@ public class SysDictController { } } + @ApiOperation(value = "查询出当前用户可配置品牌") + @GetMapping(value = "/getBrandDict") + public Result> getBrandDict() { + List dictModels = sysDictService.queryDictItemsByCode(DictCodeEnum.BRAND.getValue()); + if (!sysUserService.isAdministrator()) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List brands = projectUserBrandService.queryBrandByUserId(sysUser.getId()); + dictModels = dictModels.stream().filter(dictModel -> brands.contains(dictModel.getValue())).collect(Collectors.toList()); + } + return Result.OK(dictModels); + } + + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java index b061f8eb5..0dc1ac2bd 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java @@ -11,11 +11,9 @@ import com.jero.common.constant.CommonConstant; import com.jero.common.system.query.QueryGenerator; import com.jero.common.util.oConvertUtils; import com.jero.modules.system.entity.*; +import com.jero.modules.system.enums.AdmininstratorAuthRoleEnum; import com.jero.modules.system.model.TreeModel; -import com.jero.modules.system.service.ISysPermissionDataRuleService; -import com.jero.modules.system.service.ISysPermissionService; -import com.jero.modules.system.service.ISysRolePermissionService; -import com.jero.modules.system.service.ISysRoleService; +import com.jero.modules.system.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -36,6 +34,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; +import java.util.stream.Collectors; /** *

@@ -62,6 +61,9 @@ public class SysRoleController { @Autowired private ISysPermissionService sysPermissionService; + @Autowired + private ISysUserService sysUserService; + /** * 分页列表查询 * @param role @@ -187,6 +189,11 @@ public class SysRoleController { public Result> queryall() { Result> result = new Result<>(); List list = sysRoleService.list(); + //系统管理员才能授权的角色 + if (!sysUserService.isAdministrator()) { + List roleCodes = AdmininstratorAuthRoleEnum.getRoleCodes(); + list = list.stream().filter(sysRole -> !roleCodes.contains(sysRole.getRoleCode())).collect(Collectors.toList()); + } if(list==null||list.size()<=0) { result.error500("未找到角色信息"); }else { diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/AdmininstratorAuthRoleEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/AdmininstratorAuthRoleEnum.java new file mode 100644 index 000000000..ac94c8e78 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/AdmininstratorAuthRoleEnum.java @@ -0,0 +1,36 @@ +package com.jero.modules.system.enums; + +import com.jero.common.util.oConvertUtils; + +import java.util.ArrayList; +import java.util.List; + +public enum AdmininstratorAuthRoleEnum { + + admin("admin","系统管理员"), + //brand_administrator("BrandAdministrator","品牌管理员"), + external_reports_manager("ExternalReportsManager","对外报告管理员"), + country_card_manage("countryCardManage","countryCard管理员"); + + String roleCode; + String roleName; + + AdmininstratorAuthRoleEnum() { + } + + AdmininstratorAuthRoleEnum(String roleCode, String roleName) { + this.roleCode = roleCode; + this.roleName = roleName; + } + public static List getRoleCodes(){ + List list = new ArrayList<>(); + for (AdmininstratorAuthRoleEnum val : AdmininstratorAuthRoleEnum.values()) { + list.add(val.roleCode); + } + return list; + } + + +} + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index b6f914c49..ece289216 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -775,17 +775,17 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl 0) { - // //如果是Viewer,根据配置的品牌筛选可访问的项目 - // List brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId()); - // if (ObjectUtils.isNotEmpty(brandTypes)) { - // QueryWrapper queryWrapper = new QueryWrapper<>(); - // queryWrapper.in("brand",brandTypes); - // if (ObjectUtils.isNotEmpty(list(queryWrapper))) { - // projectIds.addAll(list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet())); - // } - // } - //} + if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) { + //如果是Viewer,根据配置的品牌筛选可访问的项目 + List brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId()); + if (ObjectUtils.isNotEmpty(brandTypes)) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("brand",brandTypes); + if (ObjectUtils.isNotEmpty(list(queryWrapper))) { + projectIds.addAll(list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet())); + } + } + } List result = projectLibraryBaseMapper.queryPageList(params); disposeData(result,"",false);