From b9d39ade7d516d714cd8df7956bf34cf3a3fb8b9 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 17 Aug 2021 17:31:26 +0800
Subject: [PATCH] fix

---
 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