Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz4j Spring R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7后台标准模板
iBiz4j Spring R7
提交
ccf5d0a0
提交
ccf5d0a0
编写于
5月 13, 2020
作者:
zhouweidong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
权限调整
上级
d64ffe15
变更
1
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
73 行增加
和
76 行删除
+73
-76
AuthPermissionEvaluator.java.ftl
...S_PKGPATH%/util/security/AuthPermissionEvaluator.java.ftl
+73
-76
未找到文件。
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/security/AuthPermissionEvaluator.java.ftl
浏览文件 @
ccf5d0a0
...
@@ -118,8 +118,8 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
...
@@ -118,8 +118,8 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
if
(
!validDataSetHasPermission(permissionList,entityName,dataSetName)){
if
(
!validDataSetHasPermission(permissionList,entityName,dataSetName)){
return
false
;
return
false
;
}
}
//
拼接权限条件
<#--//
拼接权限条件
-->
deDataSetFillPermissionSQLRouter
(
deStorageMode
,
searchContext
,
entity
,
dataSetName
,
permissionList
);
<#--
deDataSetFillPermissionSQLRouter
(
deStorageMode
,
searchContext
,
entity
,
dataSetName
,
permissionList
);-->
}
}
return
true
;
return
true
;
}
}
...
@@ -347,80 +347,77 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
...
@@ -347,80 +347,77 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
}
}
}
}
/**
<#--/**-->
*
根据实体存储类型,拼接权限条件
<#--*
根据实体存储类型,拼接权限条件
-->
*
@
param
deStorageMode
<#--*
@
param
deStorageMode
-->
*
@
param
searchContext
<#--*
@
param
searchContext
-->
*
@
param
entity
<#--*
@
param
entity
-->
*
@
param
dataSetName
<#--*
@
param
dataSetName
-->
*
@
param
permissionList
<#--*
@
param
permissionList
-->
*/
<#--*/-->
private
void
deDataSetFillPermissionSQLRouter
(
String
deStorageMode
,
Object
searchContext
,
EntityBase
entity
,
String
dataSetName
,
JSONObject
permissionList
){
<#--
private
void
deDataSetFillPermissionSQLRouter
(
String
deStorageMode
,
Object
searchContext
,
EntityBase
entity
,
String
dataSetName
,
JSONObject
permissionList
){-->
//
检查是否有数据权限
[
单行删除
]
<#--//
检查是否有数据权限
[
单行删除
]-->
if
(
deStorageMode
.
equalsIgnoreCase
(
"sql"
)){
<#--
if
(
deStorageMode
.
equalsIgnoreCase
(
"sql"
)){-->
sqlPermissionBuilder
(
searchContext
,
entity
,
dataSetName
,
permissionList
);
<#--
sqlPermissionBuilder
(
searchContext
,
entity
,
dataSetName
,
permissionList
);-->
}
<#--}-->
else
if
(
deStorageMode
.
equalsIgnoreCase
(
"nosql"
)){
<#--
else
if
(
deStorageMode
.
equalsIgnoreCase
(
"nosql"
)){-->
noSqlPermissionBuilder
(
searchContext
,
entity
,
dataSetName
,
permissionList
);
<#--
noSqlPermissionBuilder
(
searchContext
,
entity
,
dataSetName
,
permissionList
);-->
}
<#--}-->
else
if
(
deStorageMode
.
equalsIgnoreCase
(
"serviceapi"
)){
<#--
else
if
(
deStorageMode
.
equalsIgnoreCase
(
"serviceapi"
)){-->
}
<#--}-->
else
{
<#--
else
{-->
throw
new
RuntimeException
(
String
.
format
(
"未能识别[%s]实体对应存储模式[%s]"
,
entity
.
getClass
().
getSimpleName
(),
deStorageMode
));
<#--
throw
new
RuntimeException
(
String
.
format
(
"未能识别[%s]实体对应存储模式[%s]"
,
entity
.
getClass
().
getSimpleName
(),
deStorageMode
));-->
}
<#--}-->
}
<#--}-->
/**
<#--/**-->
*
为
NoSQL
存储模式的表格查询填充权限条件
<#--*
为
NoSQL
存储模式的表格查询填充权限条件
-->
*
@
param
searchContext
<#--*
@
param
searchContext
-->
*
@
param
entity
<#--*
@
param
entity
-->
*
@
param
dataSetName
<#--*
@
param
dataSetName
-->
*
@
param
permissionList
<#--*
@
param
permissionList
-->
*/
<#--*/-->
private
void
noSqlPermissionBuilder
(
Object
searchContext
,
EntityBase
entity
,
String
dataSetName
,
JSONObject
permissionList
)
{
<#--
private
void
noSqlPermissionBuilder
(
Object
searchContext
,
EntityBase
entity
,
String
dataSetName
,
JSONObject
permissionList
)
{-->
if
(
searchContext
instanceof
QueryBuildContext
){
<#--
if
(
searchContext
instanceof
QueryBuildContext
){-->
//
获取权限表达式
[
全部数据、本单位、本部门等
]
<#--//
获取权限表达式
[
全部数据、本单位、本部门等
]-->
String
entityName
=
entity
.
getClass
().
getSimpleName
();
<#--
String
entityName
=
entity
.
getClass
().
getSimpleName
();-->
JSONObject
entityObj
=
permissionList
.
getJSONObject
(
entityName
);
<#--
JSONObject
entityObj
=
permissionList
.
getJSONObject
(
entityName
);-->
JSONObject
permissionType
=
entityObj
.
getJSONObject
(
DataSetTag
);
<#--
JSONObject
permissionType
=
entityObj
.
getJSONObject
(
DataSetTag
);-->
JSONArray
dataRange
=
permissionType
.
getJSONArray
(
dataSetName
);
<#--
JSONArray
dataRange
=
permissionType
.
getJSONArray
(
dataSetName
);-->
if
(
dataRange
.
size
()==
0
)
<#--
if
(
dataRange
.
size
()==
0
)-->
return
;
<#--
return
;-->
//
根据权限表达式生成查询条件,并将查询条件设置到
SearchContext
中
<#--//
根据权限表达式生成查询条件,并将查询条件设置到
SearchContext
中
-->
fillNoSqlPermissionCond
(
dataRange
,
entity
,((
QueryBuildContext
)
searchContext
).
getSelectCond
());
<#--
fillNoSqlPermissionCond
(
dataRange
,
entity
,((
QueryBuildContext
)
searchContext
).
getSelectCond
());-->
}
<#--}-->
}
<#--}-->
<#--/**-->
/**
<#--*
为
SQL
存储模式的表格查询填充权限条件
-->
*
为
SQL
存储模式的表格查询填充权限条件
<#--*
@
param
searchContext
-->
*
@
param
searchContext
<#--*
@
param
entity
-->
*
@
param
entity
<#--*
@
param
dataSetName
-->
*
@
param
dataSetName
<#--*
@
param
permissionList
-->
*
@
param
permissionList
<#--*/-->
*/
<#--
private
void
sqlPermissionBuilder
(
Object
searchContext
,
EntityBase
entity
,
String
dataSetName
,
JSONObject
permissionList
){-->
private
void
sqlPermissionBuilder
(
Object
searchContext
,
EntityBase
entity
,
String
dataSetName
,
JSONObject
permissionList
){
<#--//
获取权限表达式
[
全部数据、本单位、本部门等
]-->
//
获取权限表达式
[
全部数据、本单位、本部门等
]
<#--
String
entityName
=
entity
.
getClass
().
getSimpleName
();-->
String
entityName
=
entity
.
getClass
().
getSimpleName
();
<#--
JSONObject
entityObj
=
permissionList
.
getJSONObject
(
entityName
);//
获取实体
-->
JSONObject
entityObj
=
permissionList
.
getJSONObject
(
entityName
);//
获取实体
<#--
JSONObject
permissionType
=
entityObj
.
getJSONObject
(
DataSetTag
);-->
JSONObject
permissionType
=
entityObj
.
getJSONObject
(
DataSetTag
);
<#--
JSONArray
dataRange
=
permissionType
.
getJSONArray
(
dataSetName
);//
获取实体数据集
-->
JSONArray
dataRange
=
permissionType
.
getJSONArray
(
dataSetName
);//
获取实体数据集
<#--
if
(
dataRange
.
size
()==
0
)-->
if
(
dataRange
.
size
()==
0
)
<#--
return
;-->
return
;
<#--//
根据权限条件获取
SQL
-->
//
根据权限条件获取
SQL
<#--
String
permissionSQL
=
getPermissionSQL
(
entity
,
dataRange
);-->
String
permissionSQL
=
getPermissionSQL
(
entity
,
dataRange
);
<#--//
将
SQL
拼接到
SearchContext
中
-->
//
将
SQL
拼接到
SearchContext
中
<#--
if
(
searchContext
instanceof
QueryWrapperContext
){-->
if
(
searchContext
instanceof
QueryWrapperContext
){
<#--
QueryWrapperContext
queryWrapperContext
=
(
QueryWrapperContext
)
searchContext
;-->
QueryWrapperContext
queryWrapperContext
=
(
QueryWrapperContext
)
searchContext
;
<#--
QueryWrapper
queryWrapper
=
queryWrapperContext
.
getSelectCond
();-->
QueryWrapper
queryWrapper
=
queryWrapperContext
.
getSelectCond
();
<#--
queryWrapper
.
apply
(
permissionSQL
);-->
queryWrapper
.
apply
(
permissionSQL
);
<#--}-->
}
<#--}-->
}
/**
/**
*
为
NoSQL
存储模式的表格查询填充权限条件
*
为
NoSQL
存储模式的表格查询填充权限条件
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录