| | |
| | | * @author ruoyi |
| | | */ |
| | | @Service("ss") |
| | | public class PermissionService |
| | | { |
| | | /** 所有权限标识 */ |
| | | public class PermissionService { |
| | | /** |
| | | * 所有权限标识 |
| | | */ |
| | | private static final String ALL_PERMISSION = "*:*:*"; |
| | | |
| | | /** 管理员角色权限标识 */ |
| | | /** |
| | | * 管理员角色权限标识 |
| | | */ |
| | | private static final String SUPER_ADMIN = "admin"; |
| | | |
| | | private static final String ROLE_DELIMETER = ","; |
| | |
| | | * @param permission 权限字符串 |
| | | * @return 用户是否具备某权限 |
| | | */ |
| | | public boolean hasPermi(String permission) |
| | | { |
| | | if (StringUtils.isEmpty(permission)) |
| | | { |
| | | public boolean hasPermi(String permission) { |
| | | if (StringUtils.isEmpty(permission)) { |
| | | return false; |
| | | } |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions())) |
| | | { |
| | | if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions())) { |
| | | return false; |
| | | } |
| | | return hasPermissions(loginUser.getPermissions(), permission); |
| | |
| | | * @param permission 权限字符串 |
| | | * @return 用户是否不具备某权限 |
| | | */ |
| | | public boolean lacksPermi(String permission) |
| | | { |
| | | public boolean lacksPermi(String permission) { |
| | | return hasPermi(permission) != true; |
| | | } |
| | | |
| | |
| | | * @param permissions 以 PERMISSION_NAMES_DELIMETER 为分隔符的权限列表 |
| | | * @return 用户是否具有以下任意一个权限 |
| | | */ |
| | | public boolean hasAnyPermi(String permissions) |
| | | { |
| | | if (StringUtils.isEmpty(permissions)) |
| | | { |
| | | public boolean hasAnyPermi(String permissions) { |
| | | if (StringUtils.isEmpty(permissions)) { |
| | | return false; |
| | | } |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions())) |
| | | { |
| | | if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions())) { |
| | | return false; |
| | | } |
| | | Set<String> authorities = loginUser.getPermissions(); |
| | | for (String permission : permissions.split(PERMISSION_DELIMETER)) |
| | | { |
| | | if (permission != null && hasPermissions(authorities, permission)) |
| | | { |
| | | for (String permission : permissions.split(PERMISSION_DELIMETER)) { |
| | | if (permission != null && hasPermissions(authorities, permission)) { |
| | | return true; |
| | | } |
| | | } |
| | |
| | | * @param role 角色字符串 |
| | | * @return 用户是否具备某角色 |
| | | */ |
| | | public boolean hasRole(String role) |
| | | { |
| | | if (StringUtils.isEmpty(role)) |
| | | { |
| | | public boolean hasRole(String role) { |
| | | if (StringUtils.isEmpty(role)) { |
| | | return false; |
| | | } |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) |
| | | { |
| | | if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) { |
| | | return false; |
| | | } |
| | | for (SysRole sysRole : loginUser.getUser().getRoles()) |
| | | { |
| | | for (SysRole sysRole : loginUser.getUser().getRoles()) { |
| | | String roleKey = sysRole.getRoleKey(); |
| | | if (SUPER_ADMIN.equals(roleKey) || roleKey.equals(StringUtils.trim(role))) |
| | | { |
| | | if (SUPER_ADMIN.equals(roleKey) || roleKey.equals(StringUtils.trim(role))) { |
| | | return true; |
| | | } |
| | | } |
| | |
| | | * @param role 角色名称 |
| | | * @return 用户是否不具备某角色 |
| | | */ |
| | | public boolean lacksRole(String role) |
| | | { |
| | | public boolean lacksRole(String role) { |
| | | return hasRole(role) != true; |
| | | } |
| | | |
| | |
| | | * @param roles 以 ROLE_NAMES_DELIMETER 为分隔符的角色列表 |
| | | * @return 用户是否具有以下任意一个角色 |
| | | */ |
| | | public boolean hasAnyRoles(String roles) |
| | | { |
| | | if (StringUtils.isEmpty(roles)) |
| | | { |
| | | public boolean hasAnyRoles(String roles) { |
| | | if (StringUtils.isEmpty(roles)) { |
| | | return false; |
| | | } |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) |
| | | { |
| | | if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles())) { |
| | | return false; |
| | | } |
| | | for (String role : roles.split(ROLE_DELIMETER)) |
| | | { |
| | | if (hasRole(role)) |
| | | { |
| | | for (String role : roles.split(ROLE_DELIMETER)) { |
| | | if (hasRole(role)) { |
| | | return true; |
| | | } |
| | | } |
| | |
| | | * @param permission 权限字符串 |
| | | * @return 用户是否具备某权限 |
| | | */ |
| | | private boolean hasPermissions(Set<String> permissions, String permission) |
| | | { |
| | | private boolean hasPermissions(Set<String> permissions, String permission) { |
| | | return permissions.contains(ALL_PERMISSION) || permissions.contains(StringUtils.trim(permission)); |
| | | } |
| | | } |