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

权限调整

上级 d64ffe15
...@@ -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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册