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