src/main/java/com/ruoyi/common/utils/StringUtils.java
@@ -325,6 +325,32 @@ } /** * 判断给定的set列表中是否包含数组array 判断给定的数组array中是否包含给定的元素value * * @param set 给定的集合 * @param array 给定的数组 * @return boolean 结果 */ public static boolean containsAny(Collection<String> collection, String... array) { if (isEmpty(collection) || isEmpty(array)) { return false; } else { for (String str : array) { if (collection.contains(str)) { return true; } } return false; } } /** * 查找指定字符串是否包含指定字符串列表中的任意一个字符串同时串忽略大小写 * * @param cs 指定字符串 src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
@@ -6,6 +6,7 @@ import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.aspectj.lang.annotation.DataScope; @@ -99,7 +100,8 @@ { continue; } if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions()) && !role.getPermissions().contains(permission)) if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions()) && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) { continue; } src/main/java/com/ruoyi/framework/aspectj/lang/annotation/DataScope.java
@@ -27,7 +27,7 @@ public String userAlias() default ""; /** * 权限字符(如不填默认会自动根据注解获取) * 权限字符(用于多个角色匹配符合要求的权限)默认根据权限注解@ss获取,多个权限用逗号分隔开来 */ public String permission() default ""; } src/main/java/com/ruoyi/framework/security/service/PermissionService.java
@@ -76,6 +76,7 @@ { return false; } PermissionContextHolder.setContext(permissions); Set<String> authorities = loginUser.getPermissions(); for (String permission : permissions.split(PERMISSION_DELIMETER)) {