Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
有来技术
youlai-mall
提交
da63c845
Y
youlai-mall
项目概览
有来技术
/
youlai-mall
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
youlai-mall
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
da63c845
编写于
11月 02, 2022
作者:
H
haoxr
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 添加根据角色获取最大数据权限范围方法
上级
f31e1f4d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
22 addition
and
19 deletion
+22
-19
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/handler/MyDataPermissionHandler.java
...oulai/common/mybatis/handler/MyDataPermissionHandler.java
+9
-12
youlai-system/system-api/src/main/java/com/youlai/system/dto/UserAuthInfo.java
...api/src/main/java/com/youlai/system/dto/UserAuthInfo.java
+1
-1
youlai-system/system-boot/src/main/java/com/youlai/system/pojo/service/impl/SysUserServiceImpl.java
...m/youlai/system/pojo/service/impl/SysUserServiceImpl.java
+11
-1
youlai-system/system-boot/src/main/resources/mapper/SysUserMapper.xml
...m/system-boot/src/main/resources/mapper/SysUserMapper.xml
+1
-5
未找到文件。
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/handler/MyDataPermissionHandler.java
浏览文件 @
da63c845
...
...
@@ -56,6 +56,7 @@ public class MyDataPermissionHandler implements DataPermissionHandler {
* @param where 当前查询条件
* @return 构建后查询条件
*/
@SneakyThrows
public
static
Expression
dataScopeFilter
(
String
deptAlias
,
String
userAlias
,
Expression
where
)
{
...
...
@@ -69,20 +70,15 @@ public class MyDataPermissionHandler implements DataPermissionHandler {
userColumnName
=
userAlias
+
"."
+
USER_ID_COLUMN_NAME
;
}
// 获取当前用户的数据权限
Integer
dataScope
=
SecurityUtils
.
getDataScope
();
DataScopeEnum
dataScopeEnum
=
IBaseEnum
.
getEnumByValue
(
dataScope
,
DataScopeEnum
.
class
);
Long
deptId
=
null
,
userId
=
null
;
Long
deptId
,
userId
;
String
appendSqlStr
=
null
;
switch
(
dataScopeEnum
)
{
case
DEPT_AND_SUB:
deptId
=
SecurityUtils
.
getDeptId
();
appendSqlStr
=
deptColumnName
+
" IN ( SELECT id FROM sys_dept WHERE id = "
+
deptId
+
" or find_in_set( "
+
deptId
+
" , tree_path ) )"
;
case
ALL:
break
;
case
DEPT:
deptId
=
SecurityUtils
.
getDeptId
();
...
...
@@ -92,15 +88,16 @@ public class MyDataPermissionHandler implements DataPermissionHandler {
userId
=
SecurityUtils
.
getUserId
();
appendSqlStr
=
userColumnName
+
"="
+
userId
;
break
;
// 默认部门及子部门数据权限
default
:
deptId
=
SecurityUtils
.
getDeptId
();
appendSqlStr
=
deptColumnName
+
" IN ( SELECT id FROM sys_dept WHERE id = "
+
deptId
+
" or find_in_set( "
+
deptId
+
" , tree_path ) )"
;
break
;
}
Expression
appendExpression
=
null
;
if
(
StrUtil
.
isNotBlank
(
appendSqlStr
))
{
try
{
appendExpression
=
CCJSqlParserUtil
.
parseCondExpression
(
appendSqlStr
);
}
catch
(
JSQLParserException
e
)
{
throw
new
RuntimeException
(
e
);
}
appendExpression
=
CCJSqlParserUtil
.
parseCondExpression
(
appendSqlStr
);
}
if
(
appendExpression
==
null
)
{
...
...
youlai-system/system-api/src/main/java/com/youlai/system/dto/UserAuthInfo.java
浏览文件 @
da63c845
...
...
@@ -52,6 +52,6 @@ public class UserAuthInfo {
/**
* 数据权限范围
*/
private
Set
<
Integer
>
dataScopes
;
private
Integer
dataScope
;
}
youlai-system/system-boot/src/main/java/com/youlai/system/pojo/service/impl/SysUserServiceImpl.java
浏览文件 @
da63c845
...
...
@@ -26,6 +26,7 @@ import com.youlai.system.pojo.bo.UserFormBO;
import
com.youlai.system.pojo.bo.UserBO
;
import
com.youlai.system.pojo.query.UserPageQuery
;
import
com.youlai.system.pojo.service.SysMenuService
;
import
com.youlai.system.pojo.service.SysRoleService
;
import
com.youlai.system.pojo.service.SysUserRoleService
;
import
com.youlai.system.pojo.vo.user.UserLoginVO
;
import
com.youlai.system.pojo.vo.user.UserExportVO
;
...
...
@@ -61,8 +62,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
private
final
SysUserRoleService
userRoleService
;
private
final
UserImportListener
userImportListener
;
private
final
UserConverter
userConverter
;
private
final
SysMenuService
menuService
;
private
final
SysRoleService
roleService
;
/**
* 获取用户分页列表
*
...
...
@@ -212,6 +215,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
if
(
CollectionUtil
.
isNotEmpty
(
roles
)){
Set
<
String
>
perms
=
menuService
.
listRolePerms
(
roles
);
userAuthInfo
.
setPerms
(
perms
);
// 根据角色获取范围最大的数据权限
Integer
dataScope
=
}
return
userAuthInfo
;
}
...
...
youlai-system/system-boot/src/main/resources/mapper/SysUserMapper.xml
浏览文件 @
da63c845
...
...
@@ -86,9 +86,6 @@
<collection
property=
"roles"
ofType=
"string"
javaType=
"java.util.Set"
>
<result
column=
"roleCode"
></result>
</collection>
<collection
property=
"dataScopes"
ofType=
"Integer"
javaType=
"java.util.Set"
>
<result
column=
"dataScope"
></result>
</collection>
</resultMap>
<!-- 根据用户名获取认证信息 -->
...
...
@@ -100,8 +97,7 @@
t1.PASSWORD,
t1.STATUS,
t1.dept_id deptId,
t3.CODE roleCode,
t3.data_scope dataScope
t3.CODE roleCode
FROM
sys_user t1
LEFT JOIN sys_user_role t2 ON t2.user_id = t1.id
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录