From 2c44627f994fc2dadd507a5795ce750730c691f8 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Thu, 29 Jul 2021 20:49:13 +0800
Subject: [PATCH] bug修复
---
zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java b/zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java
index 14b6089..c481134 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java
@@ -22,6 +22,7 @@
import java.util.*;
import java.util.Map.Entry;
+import java.util.stream.Collectors;
/**
* DefaultAuthorityManager 实现了权限控制接口
@@ -41,7 +42,7 @@
@Autowired
SysFunctionService sysFunctionService;
- public static final String USER_POWER_REDISKEY = "USER_POWER_";
+ public static final String USER_POWER_REDISKEY_APP = "USER_POWER_APP";
public static final String USERFUNCTION = "userFunction";
/** 用户所有路径权限的记录 **/
@@ -101,7 +102,7 @@
List<String> userUrlMapping = new ArrayList<>();
- String redisKey = USER_POWER_REDISKEY + SecureUtil.md5(user.getSuId()+"");
+ String redisKey = USER_POWER_REDISKEY_APP + SecureUtil.md5(user.getSuId()+"");
String cachedValue = redisClient.getCachedValue(redisKey);
if (StringUtils.isNotBlank(cachedValue)) {
//从缓存中获取用户权限
@@ -163,11 +164,17 @@
// 普通员工账号只拥有自己所拥有的权限
List<SysFunction> userFunctionList = sysFunctionService.findFunctionByRoleIds(sysUser.getRoleIds());
for (SysFunction sysFunction : userFunctionList) {
+
+ sysFunction.setSysFnBtnRel(
+ sysFunction.getSysFnBtnRel().stream().filter(item->StringUtils.isContentSet(item.getBtnValue(),sysFunction.getRpfBns())).collect(Collectors.toList())
+ );
+
// TODO注册访问路径
registerUrlMapping(userUrlMapping, sysFunction,false);
if (userFunctionMap.containsKey(sysFunction.getFnCode())) {
// 如果功能已经被添加到集合中则追加权限按钮
SysFunction oneFunctionInMap = userFunctionMap.get(sysFunction.getFnCode());
+
// 为了方便判断所以用字符串记录一下
if (StringUtils.isBlank(oneFunctionInMap.getRpfBns())) {
oneFunctionInMap.setRpfBns(sysFunction.getRpfBns());
--
Gitblit v1.9.1