链接:
手摸手,带你用vue撸后台 系列二(登录权限篇) - 掘金 (juejin.cn)
前端权限控制(一):前端权限管理及动态路由配置方案_ONEO阿喔哟的博客-优快云博客
/**
* 检查员工是否具有特权
* @param requestTokenBO 请求令牌BO
* @param controllerName 控制器名称
* @param methodName 方法名称
* @return 员工是否具有特权
*/
public Boolean checkEmployeeHavePrivilege(RequestTokenBO requestTokenBO, String controllerName, String methodName) {
// 检查控制器名称和方法名称是否为空
if (StringUtils.isEmpty(controllerName) || StringUtils.isEmpty(methodName)) {
return false;
}
// 获取员工是否是超级人员
Boolean isSuperman = requestTokenBO.getEmployeeBO().getIsSuperman();
if (isSuperman) {
return true;
}
// 获取特权列表
Map<String, List<String>> privileges = this.getPrivileges(requestTokenBO.getRequestUserId());
// 获取控制器对应的URL列表
List<String> urlList = privileges.get(controllerName.toLowerCase());
// 检查URL列表是否为空
if (CollectionUtils.isEmpty(urlList)) {
return false;
}
// 检查方法名称是否在URL列表中,判断是否有权限
return urlList.contains(methodName);
}