添加品牌管理员权限

This commit is contained in:
CD
2022-12-26 15:45:15 +08:00
parent 3692444a99
commit 14248501e6
4 changed files with 79 additions and 15 deletions
@@ -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;
/**
* <p>
@@ -74,6 +78,10 @@ public class SysDictController {
private ISysDictItemService sysDictItemService;
@Autowired
public RedisTemplate<String, Object> 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<List<DictModel>> getBrandDict() {
List<DictModel> dictModels = sysDictService.queryDictItemsByCode(DictCodeEnum.BRAND.getValue());
if (!sysUserService.isAdministrator()) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<String> brands = projectUserBrandService.queryBrandByUserId(sysUser.getId());
dictModels = dictModels.stream().filter(dictModel -> brands.contains(dictModel.getValue())).collect(Collectors.toList());
}
return Result.OK(dictModels);
}
}
@@ -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;
/**
* <p>
@@ -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<List<SysRole>> queryall() {
Result<List<SysRole>> result = new Result<>();
List<SysRole> list = sysRoleService.list();
//系统管理员才能授权的角色
if (!sysUserService.isAdministrator()) {
List<String> roleCodes = AdmininstratorAuthRoleEnum.getRoleCodes();
list = list.stream().filter(sysRole -> !roleCodes.contains(sysRole.getRoleCode())).collect(Collectors.toList());
}
if(list==null||list.size()<=0) {
result.error500("未找到角色信息");
}else {
@@ -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<String> getRoleCodes(){
List<String> list = new ArrayList<>();
for (AdmininstratorAuthRoleEnum val : AdmininstratorAuthRoleEnum.values()) {
list.add(val.roleCode);
}
return list;
}
}
@@ -775,17 +775,17 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
projectIds.addAll(permissionProjectIds);
}
}
//if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) {
// //如果是Viewer,根据配置的品牌筛选可访问的项目
// List<String> brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId());
// if (ObjectUtils.isNotEmpty(brandTypes)) {
// QueryWrapper<ProjectLibraryBase> 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<String> brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId());
if (ObjectUtils.isNotEmpty(brandTypes)) {
QueryWrapper<ProjectLibraryBase> queryWrapper = new QueryWrapper<>();
queryWrapper.in("brand",brandTypes);
if (ObjectUtils.isNotEmpty(list(queryWrapper))) {
projectIds.addAll(list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet()));
}
}
}
List<ProjectLibraryBase> result = projectLibraryBaseMapper.queryPageList(params);
disposeData(result,"",false);