From d30ba9d52e81d7489c8c90aa7c43741220785487 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期一, 12 七月 2021 09:58:32 +0800
Subject: [PATCH] 发布 v2.5.0
---
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java | 339 ++++++++++++++++++++++++++++----------------------------
1 files changed, 170 insertions(+), 169 deletions(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
index 003c794..064efa5 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
@@ -1,169 +1,170 @@
-package com.ruoyi.framework.web.service;
-
-import java.util.Set;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import com.ruoyi.common.core.domain.entity.SysRole;
-import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.utils.ServletUtils;
-import com.ruoyi.common.utils.StringUtils;
-
-/**
- * RuoYi棣栧垱 鑷畾涔夋潈闄愬疄鐜帮紝ss鍙栬嚜SpringSecurity棣栧瓧姣�
- *
- * @author ruoyi
- */
-@Service("ss")
-public class PermissionService
-{
- /** 鎵�鏈夋潈闄愭爣璇� */
- private static final String ALL_PERMISSION = "*:*:*";
-
- /** 绠$悊鍛樿鑹叉潈闄愭爣璇� */
- private static final String SUPER_ADMIN = "admin";
-
- private static final String ROLE_DELIMETER = ",";
-
- private static final String PERMISSION_DELIMETER = ",";
-
- @Autowired
- private TokenService tokenService;
-
- /**
- * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愭潈闄�
- *
- * @param permission 鏉冮檺瀛楃涓�
- * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄�
- */
- public boolean hasPermi(String permission)
- {
- if (StringUtils.isEmpty(permission))
- {
- return false;
- }
- LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
- if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getPermissions()))
- {
- return false;
- }
- return hasPermissions(loginUser.getPermissions(), permission);
- }
-
- /**
- * 楠岃瘉鐢ㄦ埛鏄惁涓嶅叿澶囨煇鏉冮檺锛屼笌 hasPermi閫昏緫鐩稿弽
- *
- * @param permission 鏉冮檺瀛楃涓�
- * @return 鐢ㄦ埛鏄惁涓嶅叿澶囨煇鏉冮檺
- */
- public boolean lacksPermi(String permission)
- {
- return hasPermi(permission) != true;
- }
-
- /**
- * 楠岃瘉鐢ㄦ埛鏄惁鍏锋湁浠ヤ笅浠绘剰涓�涓潈闄�
- *
- * @param permissions 浠� PERMISSION_NAMES_DELIMETER 涓哄垎闅旂鐨勬潈闄愬垪琛�
- * @return 鐢ㄦ埛鏄惁鍏锋湁浠ヤ笅浠绘剰涓�涓潈闄�
- */
- public boolean hasAnyPermi(String permissions)
- {
- if (StringUtils.isEmpty(permissions))
- {
- return false;
- }
- LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
- 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))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * 鍒ゆ柇鐢ㄦ埛鏄惁鎷ユ湁鏌愪釜瑙掕壊
- *
- * @param role 瑙掕壊瀛楃涓�
- * @return 鐢ㄦ埛鏄惁鍏峰鏌愯鑹�
- */
- public boolean hasRole(String role)
- {
- if (StringUtils.isEmpty(role))
- {
- return false;
- }
- LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
- if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles()))
- {
- return false;
- }
- for (SysRole sysRole : loginUser.getUser().getRoles())
- {
- String roleKey = sysRole.getRoleKey();
- if (SUPER_ADMIN.equals(roleKey) || roleKey.equals(StringUtils.trim(role)))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * 楠岃瘉鐢ㄦ埛鏄惁涓嶅叿澶囨煇瑙掕壊锛屼笌 isRole閫昏緫鐩稿弽銆�
- *
- * @param role 瑙掕壊鍚嶇О
- * @return 鐢ㄦ埛鏄惁涓嶅叿澶囨煇瑙掕壊
- */
- public boolean lacksRole(String role)
- {
- return hasRole(role) != true;
- }
-
- /**
- * 楠岃瘉鐢ㄦ埛鏄惁鍏锋湁浠ヤ笅浠绘剰涓�涓鑹�
- *
- * @param roles 浠� ROLE_NAMES_DELIMETER 涓哄垎闅旂鐨勮鑹插垪琛�
- * @return 鐢ㄦ埛鏄惁鍏锋湁浠ヤ笅浠绘剰涓�涓鑹�
- */
- public boolean hasAnyRoles(String roles)
- {
- if (StringUtils.isEmpty(roles))
- {
- return false;
- }
- LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
- if (StringUtils.isNull(loginUser) || CollectionUtils.isEmpty(loginUser.getUser().getRoles()))
- {
- return false;
- }
- for (String role : roles.split(ROLE_DELIMETER))
- {
- if (hasRole(role))
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * 鍒ゆ柇鏄惁鍖呭惈鏉冮檺
- *
- * @param permissions 鏉冮檺鍒楄〃
- * @param permission 鏉冮檺瀛楃涓�
- * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄�
- */
- private boolean hasPermissions(Set<String> permissions, String permission)
- {
- return permissions.contains(ALL_PERMISSION) || permissions.contains(StringUtils.trim(permission));
- }
-}
+package com.ruoyi.framework.web.service;
+
+import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.StrUtil;
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.utils.ServletUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Set;
+
+/**
+ * RuoYi棣栧垱 鑷畾涔夋潈闄愬疄鐜帮紝ss鍙栬嚜SpringSecurity棣栧瓧姣�
+ *
+ * @author ruoyi
+ */
+@Service("ss")
+public class PermissionService
+{
+ /** 鎵�鏈夋潈闄愭爣璇� */
+ private static final String ALL_PERMISSION = "*:*:*";
+
+ /** 绠$悊鍛樿鑹叉潈闄愭爣璇� */
+ private static final String SUPER_ADMIN = "admin";
+
+ private static final String ROLE_DELIMETER = ",";
+
+ private static final String PERMISSION_DELIMETER = ",";
+
+ @Autowired
+ private TokenService tokenService;
+
+ /**
+ * 楠岃瘉鐢ㄦ埛鏄惁鍏峰鏌愭潈闄�
+ *
+ * @param permission 鏉冮檺瀛楃涓�
+ * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄�
+ */
+ public boolean hasPermi(String permission)
+ {
+ if (Validator.isEmpty(permission))
+ {
+ return false;
+ }
+ LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+ if (Validator.isNull(loginUser) || Validator.isEmpty(loginUser.getPermissions()))
+ {
+ return false;
+ }
+ return hasPermissions(loginUser.getPermissions(), permission);
+ }
+
+ /**
+ * 楠岃瘉鐢ㄦ埛鏄惁涓嶅叿澶囨煇鏉冮檺锛屼笌 hasPermi閫昏緫鐩稿弽
+ *
+ * @param permission 鏉冮檺瀛楃涓�
+ * @return 鐢ㄦ埛鏄惁涓嶅叿澶囨煇鏉冮檺
+ */
+ public boolean lacksPermi(String permission)
+ {
+ return hasPermi(permission) != true;
+ }
+
+ /**
+ * 楠岃瘉鐢ㄦ埛鏄惁鍏锋湁浠ヤ笅浠绘剰涓�涓潈闄�
+ *
+ * @param permissions 浠� PERMISSION_NAMES_DELIMETER 涓哄垎闅旂鐨勬潈闄愬垪琛�
+ * @return 鐢ㄦ埛鏄惁鍏锋湁浠ヤ笅浠绘剰涓�涓潈闄�
+ */
+ public boolean hasAnyPermi(String permissions)
+ {
+ if (Validator.isEmpty(permissions))
+ {
+ return false;
+ }
+ LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+ if (Validator.isNull(loginUser) || Validator.isEmpty(loginUser.getPermissions()))
+ {
+ return false;
+ }
+ Set<String> authorities = loginUser.getPermissions();
+ for (String permission : permissions.split(PERMISSION_DELIMETER))
+ {
+ if (permission != null && hasPermissions(authorities, permission))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * 鍒ゆ柇鐢ㄦ埛鏄惁鎷ユ湁鏌愪釜瑙掕壊
+ *
+ * @param role 瑙掕壊瀛楃涓�
+ * @return 鐢ㄦ埛鏄惁鍏峰鏌愯鑹�
+ */
+ public boolean hasRole(String role)
+ {
+ if (Validator.isEmpty(role))
+ {
+ return false;
+ }
+ LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+ if (Validator.isNull(loginUser) || Validator.isEmpty(loginUser.getUser().getRoles()))
+ {
+ return false;
+ }
+ for (SysRole sysRole : loginUser.getUser().getRoles())
+ {
+ String roleKey = sysRole.getRoleKey();
+ if (SUPER_ADMIN.equals(roleKey) || roleKey.equals(StrUtil.trim(role)))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * 楠岃瘉鐢ㄦ埛鏄惁涓嶅叿澶囨煇瑙掕壊锛屼笌 isRole閫昏緫鐩稿弽銆�
+ *
+ * @param role 瑙掕壊鍚嶇О
+ * @return 鐢ㄦ埛鏄惁涓嶅叿澶囨煇瑙掕壊
+ */
+ public boolean lacksRole(String role)
+ {
+ return hasRole(role) != true;
+ }
+
+ /**
+ * 楠岃瘉鐢ㄦ埛鏄惁鍏锋湁浠ヤ笅浠绘剰涓�涓鑹�
+ *
+ * @param roles 浠� ROLE_NAMES_DELIMETER 涓哄垎闅旂鐨勮鑹插垪琛�
+ * @return 鐢ㄦ埛鏄惁鍏锋湁浠ヤ笅浠绘剰涓�涓鑹�
+ */
+ public boolean hasAnyRoles(String roles)
+ {
+ if (Validator.isEmpty(roles))
+ {
+ return false;
+ }
+ LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+ if (Validator.isNull(loginUser) || Validator.isEmpty(loginUser.getUser().getRoles()))
+ {
+ return false;
+ }
+ for (String role : roles.split(ROLE_DELIMETER))
+ {
+ if (hasRole(role))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * 鍒ゆ柇鏄惁鍖呭惈鏉冮檺
+ *
+ * @param permissions 鏉冮檺鍒楄〃
+ * @param permission 鏉冮檺瀛楃涓�
+ * @return 鐢ㄦ埛鏄惁鍏峰鏌愭潈闄�
+ */
+ private boolean hasPermissions(Set<String> permissions, String permission)
+ {
+ return permissions.contains(ALL_PERMISSION) || permissions.contains(StrUtil.trim(permission));
+ }
+}
--
Gitblit v1.9.3