Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
RuoYi Vue
Commits
27e09372
Commit
27e09372
authored
Aug 22, 2022
by
RuoYi
Browse files
支持多权限字符匹配角色数据权限
parent
aadb7a41
Changes
4
Hide whitespace changes
Inline
Side-by-side
ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java
View file @
27e09372
...
...
@@ -27,7 +27,7 @@ public @interface DataScope
public
String
userAlias
()
default
""
;
/**
* 权限字符(
如不填默认会自动根据注解获取)
* 权限字符(
用于多个角色匹配符合要求的权限)默认根据权限注解@ss获取,多个权限用逗号分隔开来
*/
public
String
permission
()
default
""
;
}
ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java
View file @
27e09372
...
...
@@ -324,6 +324,32 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
return
list
;
}
/**
* 判断给定的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
;
}
}
/**
* 查找指定字符串是否包含指定字符串列表中的任意一个字符串同时串忽略大小写
*
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
View file @
27e09372
...
...
@@ -11,6 +11,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
import
com.ruoyi.common.core.domain.entity.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.model.LoginUser
;
import
com.ruoyi.common.core.text.Convert
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.framework.security.context.PermissionContextHolder
;
...
...
@@ -99,7 +100,8 @@ public class DataScopeAspect
{
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
;
}
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
View file @
27e09372
...
...
@@ -76,6 +76,7 @@ public class PermissionService
{
return
false
;
}
PermissionContextHolder
.
setContext
(
permissions
);
Set
<
String
>
authorities
=
loginUser
.
getPermissions
();
for
(
String
permission
:
permissions
.
split
(
PERMISSION_DELIMETER
))
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment