Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz4j Spring R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7后台标准模板
iBiz4j Spring R7
提交
76af581d
提交
76af581d
编写于
5月 20, 2020
作者:
zhouweidong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
权限调整
上级
ce0e36a5
变更
2
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
9 行增加
和
74 行删除
+9
-74
%ITEM%Resource.java.ftl
...YS_PKGPATH%/%SYSAPI_PKGPATH%/rest/%ITEM%Resource.java.ftl
+1
-1
AuthPermissionEvaluator.java.ftl
...S_PKGPATH%/util/security/AuthPermissionEvaluator.java.ftl
+8
-73
未找到文件。
SLN/%PUBPRJ%-provider/%PUBPRJ%-provider-%SYSAPI_PKGPATH%/src/main/java/%SYS_PKGPATH%/%SYSAPI_PKGPATH%/rest/%ITEM%Resource.java.ftl
浏览文件 @
76af581d
...
...
@@ -226,7 +226,7 @@ public class ${itemCodeName}Resource {
<#
if
noDEPrefield
>
@
PreAuthorize
(
"hasAnyAuthority('ROLE_SUPERADMIN','${sys.codeName}-${de.codeName}-${deaction.codeName}-all')"
)
<#
else
>
@
PreAuthorize
(
"hasPermission(
'Remove',{#${itemCodeNameLC + keyCNLC},{this.getEntity(),'${deStorageMode}'}
})"
)
@
PreAuthorize
(
"hasPermission(
#${itemCodeNameLC + keyCNLC},'Remove',{this.getEntity(),'${deStorageMode}'
})"
)
</#
if
>
@
ApiOperation
(
value
=
"${deaction.getLogicName()}"
,
tags
=
{
"${itemCodeName}"
},
notes
=
"${deaction.getLogicName()}"
)
@
RequestMapping
(
method
=
RequestMethod
.
DELETE
,
value
=
"${fullPath}/{${itemCodeNameLC + keyCNLC}}"
)
...
...
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/security/AuthPermissionEvaluator.java.ftl
浏览文件 @
76af581d
...
...
@@ -55,97 +55,32 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
@
Lazy
private
MongoTemplate
mongoTemplate
;
/**
*
表格权限检查
:用于检查当前用户是否拥有表格数据的读取、删除权限
*
*
@
param
authentication
*
@
param
deAction
表格行为,如:
[
READ
,
DELETE
]
*
@
param
gridParam
表格参数,如:当前表格所处实体
(
EntityName
)
、表格删除的数据主键
(
srfkeys
)
*
@
return
true
/
false
true
则允许当前行为,
false
拒绝行为
*/
@
Override
public
boolean
hasPermission
(
Authentication
authentication
,
Object
deAction
,
Object
gridParam
)
{
<#--//
未开启权限校验、超级管理员则不进行权限检查
-->
<#--
if
(
AuthenticationUser
.
getAuthenticationUser
().
getSuperuser
()==
1
||
!enablePermissionValid)-->
<#--
return
true
;-->
<#--
String
action
=
""
;-->
<#--
String
deStorageMode
;-->
<#--
if
(
deAction
instanceof
String
)-->
<#--
action
=
(
String
)
deAction
;-->
<#--
if
(
StringUtils
.
isEmpty
(
action
))-->
<#--
return
false
;-->
<#--//
获取当前用户权限列表
-->
<#--
JSONObject
userPermission
=
AuthenticationUser
.
getAuthenticationUser
().
getPermissionList
();-->
<#--
if
(
userPermission
==
null
)-->
<#--
return
false
;-->
<#--
List
gridParamList
=
(
ArrayList
)
gridParam
;-->
<#--
if
(
action
.
equalsIgnoreCase
(
"remove"
)){-->
<#--//
准备参数
-->
<#--
Object
srfKey
=
gridParamList
.
get
(
0
);-->
<#--
EntityBase
entity
=
(
EntityBase
)
gridParamList
.
get
(
1
);-->
<#--
deStorageMode
=
(
String
)
gridParamList
.
get
(
2
);-->
<#--
String
entityName
=
entity
.
getClass
().
getSimpleName
();-->
<#--//
获取实体行为权限信息
-->
<#--
JSONObject
permissionList
=
userPermission
.
getJSONObject
(
"entities"
);-->
<#--//
检查是否有操作权限
[
create
.
update
.
delete
.
read
]-->
<#--
if
(
!validDEActionHasPermission(permissionList,entityName,action)){-->
<#--
return
false
;-->
<#--}-->
<#--//
检查是否有数据权限
-->
<#--
return
deActionPermissionValidRouter
(
deStorageMode
,
entity
,
action
,
srfKey
,
permissionList
);-->
<#--}-->
<#--
else
{-->
<#--//
准备参数
-->
<#--
Object
searchContext
=
gridParamList
.
get
(
0
);-->
<#--
String
dataSetName
=
String
.
valueOf
(
gridParamList
.
get
(
1
));-->
<#--
EntityBase
entity
=
(
EntityBase
)
gridParamList
.
get
(
2
);-->
<#--
deStorageMode
=
(
String
)
gridParamList
.
get
(
3
);-->
<#--
String
entityName
=
entity
.
getClass
().
getSimpleName
();-->
<#--//
获取数据集权限信息
-->
<#--
JSONObject
permissionList
=
userPermission
.
getJSONObject
(
"entities"
);-->
<#--
if
(
StringUtils
.
isEmpty
(
entityName
)||
StringUtils
.
isEmpty
(
dataSetName
))-->
<#--
return
false
;-->
<#--//
检查是否有访问数据集的权限
-->
<#--
if
(
!validDataSetHasPermission(permissionList,entityName,dataSetName)){-->
<#--
return
false
;-->
<#--}-->
<#--&
lt
;#&
ndash
;//
拼接权限条件
&
ndash
;&
gt
;-->
<#--&
lt
;#&
ndash
;
deDataSetFillPermissionSQLRouter
(
deStorageMode
,
searchContext
,
entity
,
dataSetName
,
permissionList
);&
ndash
;&
gt
;-->
<#--}-->
return
true
;
}
/**
*
表单权限检查
:用于检查当前用户是否拥有表单
的新建、编辑、删除权限
*
实体行为权限检查
:用于检查当前用户是否拥有实体
的新建、编辑、删除权限
*
*
@
param
authentication
*
@
param
srfKey
当前操作数据的主键
*
@
param
action
当前操作行为:如:
[
READ
、
UPDATE
、
DELETE
]
*
@
param
formParam
表单参数对象
*
@
param
params
相关参数
*
@
return
true
/
false
true
则允许当前行为,
false
拒绝行为
*/
@
Override
public
boolean
hasPermission
(
Authentication
authentication
,
Serializable
srfKey
,
String
action
,
Object
formParam
)
{
public
boolean
hasPermission
(
Authentication
authentication
,
Serializable
srfKey
,
String
action
,
Object
params
)
{
//
未开启权限校验、超级管理员则不进行权限检查
if
(
AuthenticationUser
.
getAuthenticationUser
().
getSuperuser
()==
1
||
!enablePermissionValid)
return
true
;
List
formParamList
=
(
ArrayList
)
formParam
;
EntityBase
entity
=
(
EntityBase
)
formP
aramList
.
get
(
0
);
String
deStorageMode
=
(
String
)
formP
aramList
.
get
(
1
);
List
paramList
=
(
ArrayList
)
params
;
EntityBase
entity
=
(
EntityBase
)
p
aramList
.
get
(
0
);
String
deStorageMode
=
(
String
)
p
aramList
.
get
(
1
);
if
(
StringUtils
.
isEmpty
(
entity
))
return
false
;
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录