正在显示
4 个修改的文件
包含
31 行增加
和
2 行删除
| @@ -27,7 +27,7 @@ public @interface DataScope | @@ -27,7 +27,7 @@ public @interface DataScope | ||
| 27 | public String userAlias() default ""; | 27 | public String userAlias() default ""; |
| 28 | 28 | ||
| 29 | /** | 29 | /** |
| 30 | - * 权限字符(如不填默认会自动根据注解获取) | 30 | + * 权限字符(用于多个角色匹配符合要求的权限)默认根据权限注解@ss获取,多个权限用逗号分隔开来 |
| 31 | */ | 31 | */ |
| 32 | public String permission() default ""; | 32 | public String permission() default ""; |
| 33 | } | 33 | } |
| @@ -325,6 +325,32 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils | @@ -325,6 +325,32 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils | ||
| 325 | } | 325 | } |
| 326 | 326 | ||
| 327 | /** | 327 | /** |
| 328 | + * 判断给定的set列表中是否包含数组array 判断给定的数组array中是否包含给定的元素value | ||
| 329 | + * | ||
| 330 | + * @param set 给定的集合 | ||
| 331 | + * @param array 给定的数组 | ||
| 332 | + * @return boolean 结果 | ||
| 333 | + */ | ||
| 334 | + public static boolean containsAny(Collection<String> collection, String... array) | ||
| 335 | + { | ||
| 336 | + if (isEmpty(collection) || isEmpty(array)) | ||
| 337 | + { | ||
| 338 | + return false; | ||
| 339 | + } | ||
| 340 | + else | ||
| 341 | + { | ||
| 342 | + for (String str : array) | ||
| 343 | + { | ||
| 344 | + if (collection.contains(str)) | ||
| 345 | + { | ||
| 346 | + return true; | ||
| 347 | + } | ||
| 348 | + } | ||
| 349 | + return false; | ||
| 350 | + } | ||
| 351 | + } | ||
| 352 | + | ||
| 353 | + /** | ||
| 328 | * 查找指定字符串是否包含指定字符串列表中的任意一个字符串同时串忽略大小写 | 354 | * 查找指定字符串是否包含指定字符串列表中的任意一个字符串同时串忽略大小写 |
| 329 | * | 355 | * |
| 330 | * @param cs 指定字符串 | 356 | * @param cs 指定字符串 |
| @@ -11,6 +11,7 @@ import com.ruoyi.common.core.domain.BaseEntity; | @@ -11,6 +11,7 @@ import com.ruoyi.common.core.domain.BaseEntity; | ||
| 11 | import com.ruoyi.common.core.domain.entity.SysRole; | 11 | import com.ruoyi.common.core.domain.entity.SysRole; |
| 12 | import com.ruoyi.common.core.domain.entity.SysUser; | 12 | import com.ruoyi.common.core.domain.entity.SysUser; |
| 13 | import com.ruoyi.common.core.domain.model.LoginUser; | 13 | import com.ruoyi.common.core.domain.model.LoginUser; |
| 14 | +import com.ruoyi.common.core.text.Convert; | ||
| 14 | import com.ruoyi.common.utils.SecurityUtils; | 15 | import com.ruoyi.common.utils.SecurityUtils; |
| 15 | import com.ruoyi.common.utils.StringUtils; | 16 | import com.ruoyi.common.utils.StringUtils; |
| 16 | import com.ruoyi.framework.security.context.PermissionContextHolder; | 17 | import com.ruoyi.framework.security.context.PermissionContextHolder; |
| @@ -99,7 +100,8 @@ public class DataScopeAspect | @@ -99,7 +100,8 @@ public class DataScopeAspect | ||
| 99 | { | 100 | { |
| 100 | continue; | 101 | continue; |
| 101 | } | 102 | } |
| 102 | - if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions()) && !role.getPermissions().contains(permission)) | 103 | + if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions()) |
| 104 | + && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) | ||
| 103 | { | 105 | { |
| 104 | continue; | 106 | continue; |
| 105 | } | 107 | } |
| @@ -76,6 +76,7 @@ public class PermissionService | @@ -76,6 +76,7 @@ public class PermissionService | ||
| 76 | { | 76 | { |
| 77 | return false; | 77 | return false; |
| 78 | } | 78 | } |
| 79 | + PermissionContextHolder.setContext(permissions); | ||
| 79 | Set<String> authorities = loginUser.getPermissions(); | 80 | Set<String> authorities = loginUser.getPermissions(); |
| 80 | for (String permission : permissions.split(PERMISSION_DELIMETER)) | 81 | for (String permission : permissions.split(PERMISSION_DELIMETER)) |
| 81 | { | 82 | { |
-
请 注册 或 登录 后发表评论