Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
sts网站
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liyang
sts网站
Commits
27e09372
Commit
27e09372
authored
Aug 22, 2022
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
支持多权限字符匹配角色数据权限
parent
aadb7a41
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
2 deletions
+31
-2
DataScope.java
.../src/main/java/com/ruoyi/common/annotation/DataScope.java
+1
-1
StringUtils.java
...mon/src/main/java/com/ruoyi/common/utils/StringUtils.java
+26
-0
DataScopeAspect.java
...ain/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
+3
-1
PermissionService.java
...va/com/ruoyi/framework/web/service/PermissionService.java
+1
-0
No files found.
ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java
View file @
27e09372
...
@@ -27,7 +27,7 @@ public @interface DataScope
...
@@ -27,7 +27,7 @@ public @interface DataScope
public
String
userAlias
()
default
""
;
public
String
userAlias
()
default
""
;
/**
/**
* 权限字符(
如不填默认会自动根据注解获取)
* 权限字符(
用于多个角色匹配符合要求的权限)默认根据权限注解@ss获取,多个权限用逗号分隔开来
*/
*/
public
String
permission
()
default
""
;
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
...
@@ -324,6 +324,32 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
return
list
;
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;
...
@@ -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.SysRole
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.entity.SysUser
;
import
com.ruoyi.common.core.domain.model.LoginUser
;
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.SecurityUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.framework.security.context.PermissionContextHolder
;
import
com.ruoyi.framework.security.context.PermissionContextHolder
;
...
@@ -99,7 +100,8 @@ public class DataScopeAspect
...
@@ -99,7 +100,8 @@ public class DataScopeAspect
{
{
continue
;
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
;
continue
;
}
}
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
View file @
27e09372
...
@@ -76,6 +76,7 @@ public class PermissionService
...
@@ -76,6 +76,7 @@ public class PermissionService
{
{
return
false
;
return
false
;
}
}
PermissionContextHolder
.
setContext
(
permissions
);
Set
<
String
>
authorities
=
loginUser
.
getPermissions
();
Set
<
String
>
authorities
=
loginUser
.
getPermissions
();
for
(
String
permission
:
permissions
.
split
(
PERMISSION_DELIMETER
))
for
(
String
permission
:
permissions
.
split
(
PERMISSION_DELIMETER
))
{
{
...
...
Write
Preview
Markdown
is supported
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