| | |
| | | |
| | | import java.util.*; |
| | | import java.util.Map.Entry; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * DefaultAuthorityManager 实现了权限控制接口 |
| | |
| | | @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"; |
| | | /** 用户所有路径权限的记录 **/ |
| | |
| | | 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)) { |
| | | //从缓存中获取用户权限 |
| | |
| | | // 普通员工账号只拥有自己所拥有的权限 |
| | | 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()); |