提交 76af581d 编写于 作者: zhouweidong's avatar zhouweidong

权限调整

上级 ce0e36a5
......@@ -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}}")
......
......@@ -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 当前操作行为:如:[READUPDATEDELETE]
* @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) formParamList.get(0);
String deStorageMode= (String) formParamList.get(1);
List paramList = (ArrayList) params;
EntityBase entity = (EntityBase) paramList.get(0);
String deStorageMode= (String) paramList.get(1);
if (StringUtils.isEmpty(entity))
return false;
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册