From e062e6b76fb7870aeb4faeafab2cb73daed52f07 Mon Sep 17 00:00:00 2001 From: chenhj <1263187585@qq.com> Date: 星期五, 16 五月 2025 17:52:01 +0800 Subject: [PATCH] 付款台账 --- src/main/java/com/ruoyi/common/utils/SecurityUtils.java | 67 ++++++++++++++++++++++++++++++--- 1 files changed, 61 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index 6790ee0..009384f 100644 --- a/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -1,11 +1,17 @@ package com.ruoyi.common.utils; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.util.PatternMatchUtils; +import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.HttpStatus; -import com.ruoyi.common.exception.CustomException; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.framework.security.LoginUser; +import com.ruoyi.project.system.domain.SysRole; /** * 瀹夊叏鏈嶅姟宸ュ叿绫� @@ -14,7 +20,6 @@ */ public class SecurityUtils { - /** * 鐢ㄦ埛ID **/ @@ -26,7 +31,7 @@ } catch (Exception e) { - throw new CustomException("鑾峰彇鐢ㄦ埛ID寮傚父", HttpStatus.UNAUTHORIZED); + throw new ServiceException("鑾峰彇鐢ㄦ埛ID寮傚父", HttpStatus.UNAUTHORIZED); } } @@ -41,7 +46,7 @@ } catch (Exception e) { - throw new CustomException("鑾峰彇閮ㄩ棬ID寮傚父", HttpStatus.UNAUTHORIZED); + throw new ServiceException("鑾峰彇閮ㄩ棬ID寮傚父", HttpStatus.UNAUTHORIZED); } } @@ -56,7 +61,7 @@ } catch (Exception e) { - throw new CustomException("鑾峰彇鐢ㄦ埛璐︽埛寮傚父", HttpStatus.UNAUTHORIZED); + throw new ServiceException("鑾峰彇鐢ㄦ埛璐︽埛寮傚父", HttpStatus.UNAUTHORIZED); } } @@ -71,7 +76,7 @@ } catch (Exception e) { - throw new CustomException("鑾峰彇鐢ㄦ埛淇℃伅寮傚父", HttpStatus.UNAUTHORIZED); + throw new ServiceException("鑾峰彇鐢ㄦ埛淇℃伅寮傚父", HttpStatus.UNAUTHORIZED); } } @@ -118,4 +123,54 @@ { return userId != null && 1L == userId; } + + /** + * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愭潈闄� + * + * @param permission 鏉冮檺瀛楃涓� + * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄� + */ + public static boolean hasPermi(String permission) + { + return hasPermi(getLoginUser().getPermissions(), permission); + } + + /** + * 鍒ゆ柇鏄惁鍖呭惈鏉冮檺 + * + * @param authorities 鏉冮檺鍒楄〃 + * @param permission 鏉冮檺瀛楃涓� + * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄� + */ + public static boolean hasPermi(Collection<String> authorities, String permission) + { + return authorities.stream().filter(StringUtils::hasText) + .anyMatch(x -> Constants.ALL_PERMISSION.equals(x) || PatternMatchUtils.simpleMatch(x, permission)); + } + + /** + * 楠岃瘉鐢ㄦ埛鏄惁鎷ユ湁鏌愪釜瑙掕壊 + * + * @param role 瑙掕壊鏍囪瘑 + * @return 鐢ㄦ埛鏄惁鍏峰鏌愯鑹� + */ + public static boolean hasRole(String role) + { + List<SysRole> roleList = getLoginUser().getUser().getRoles(); + Collection<String> roles = roleList.stream().map(SysRole::getRoleKey).collect(Collectors.toSet()); + return hasRole(roles, role); + } + + /** + * 鍒ゆ柇鏄惁鍖呭惈瑙掕壊 + * + * @param roles 瑙掕壊鍒楄〃 + * @param role 瑙掕壊 + * @return 鐢ㄦ埛鏄惁鍏峰鏌愯鑹叉潈闄� + */ + public static boolean hasRole(Collection<String> roles, String role) + { + return roles.stream().filter(StringUtils::hasText) + .anyMatch(x -> Constants.SUPER_ADMIN.equals(x) || PatternMatchUtils.simpleMatch(x, role)); + } } -- Gitblit v1.9.3