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

权限调整

上级 809a1613
...@@ -42,10 +42,10 @@ public class AuthPermissionEvaluator implements PermissionEvaluator { ...@@ -42,10 +42,10 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
* 实体行为操作标识 * 实体行为操作标识
*/ */
private String DEActionType="DEACTION"; private String DEActionType="DEACTION";
/** <#--/**-->
* 实体数据集操作标识 <#--* 实体数据集操作标识-->
*/ <#--*/-->
private String DataSetTag="DATASET"; <#--private String DataSetTag="DATASET";-->
/** /**
*实体主键标识 *实体主键标识
*/ */
...@@ -66,63 +66,63 @@ public class AuthPermissionEvaluator implements PermissionEvaluator { ...@@ -66,63 +66,63 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
@Override @Override
public boolean hasPermission(Authentication authentication, Object deAction, Object gridParam) { public boolean hasPermission(Authentication authentication, Object deAction, Object gridParam) {
//未开启权限校验、超级管理员则不进行权限检查 <#--//未开启权限校验、超级管理员则不进行权限检查-->
if(AuthenticationUser.getAuthenticationUser().getSuperuser()==1 || !enablePermissionValid) <#--if(AuthenticationUser.getAuthenticationUser().getSuperuser()==1 || !enablePermissionValid)-->
return true; <#--return true;-->
String action = ""; <#--String action = "";-->
String deStorageMode; <#--String deStorageMode;-->
if (deAction instanceof String) <#--if (deAction instanceof String)-->
action = (String) deAction; <#--action = (String) deAction;-->
if (StringUtils.isEmpty(action)) <#--if (StringUtils.isEmpty(action))-->
return false; <#--return false;-->
//获取当前用户权限列表 <#--//获取当前用户权限列表-->
JSONObject userPermission= AuthenticationUser.getAuthenticationUser().getPermissionList(); <#--JSONObject userPermission= AuthenticationUser.getAuthenticationUser().getPermissionList();-->
if(userPermission==null) <#--if(userPermission==null)-->
return false; <#--return false;-->
List gridParamList = (ArrayList) gridParam; <#--List gridParamList = (ArrayList) gridParam;-->
if(action.equalsIgnoreCase("remove")){ <#--if(action.equalsIgnoreCase("remove")){-->
//准备参数 <#--//准备参数-->
Object srfKey =gridParamList.get(0); <#--Object srfKey =gridParamList.get(0);-->
EntityBase entity = (EntityBase) gridParamList.get(1); <#--EntityBase entity = (EntityBase) gridParamList.get(1);-->
deStorageMode= (String) gridParamList.get(2); <#--deStorageMode= (String) gridParamList.get(2);-->
String entityName = entity.getClass().getSimpleName(); <#--String entityName = entity.getClass().getSimpleName();-->
//获取实体行为权限信息 <#--//获取实体行为权限信息-->
JSONObject permissionList=userPermission.getJSONObject("entities"); <#--JSONObject permissionList=userPermission.getJSONObject("entities");-->
//检查是否有操作权限[create.update.delete.read] <#--//检查是否有操作权限[create.update.delete.read]-->
if(!validDEActionHasPermission(permissionList,entityName,action)){ <#--if(!validDEActionHasPermission(permissionList,entityName,action)){-->
return false; <#--return false;-->
} <#--}-->
//检查是否有数据权限 <#--//检查是否有数据权限-->
return deActionPermissionValidRouter(deStorageMode, entity , action , srfKey, permissionList); <#--return deActionPermissionValidRouter(deStorageMode, entity , action , srfKey, permissionList);-->
} <#--}-->
else{ <#--else{-->
//准备参数 <#--//准备参数-->
Object searchContext=gridParamList.get(0); <#--Object searchContext=gridParamList.get(0);-->
String dataSetName=String.valueOf(gridParamList.get(1)); <#--String dataSetName=String.valueOf(gridParamList.get(1));-->
EntityBase entity = (EntityBase) gridParamList.get(2); <#--EntityBase entity = (EntityBase) gridParamList.get(2);-->
deStorageMode= (String) gridParamList.get(3); <#--deStorageMode= (String) gridParamList.get(3);-->
String entityName = entity.getClass().getSimpleName(); <#--String entityName = entity.getClass().getSimpleName();-->
//获取数据集权限信息 <#--//获取数据集权限信息-->
JSONObject permissionList=userPermission.getJSONObject("entities"); <#--JSONObject permissionList=userPermission.getJSONObject("entities");-->
if(StringUtils.isEmpty(entityName)|| StringUtils.isEmpty(dataSetName)) <#--if(StringUtils.isEmpty(entityName)|| StringUtils.isEmpty(dataSetName))-->
return false; <#--return false;-->
//检查是否有访问数据集的权限 <#--//检查是否有访问数据集的权限-->
if(!validDataSetHasPermission(permissionList,entityName,dataSetName)){ <#--if(!validDataSetHasPermission(permissionList,entityName,dataSetName)){-->
return false; <#--return false;-->
} <#--}-->
<#--//拼接权限条件--> <#--&lt;#&ndash;//拼接权限条件&ndash;&gt;-->
<#--deDataSetFillPermissionSQLRouter(deStorageMode, searchContext, entity , dataSetName , permissionList);--> <#--&lt;#&ndash;deDataSetFillPermissionSQLRouter(deStorageMode, searchContext, entity , dataSetName , permissionList);&ndash;&gt;-->
} <#--}-->
return true; return true;
} }
...@@ -216,33 +216,33 @@ public class AuthPermissionEvaluator implements PermissionEvaluator { ...@@ -216,33 +216,33 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
return hasPermission; return hasPermission;
} }
/** <#--/**-->
* 数据集合权限校验 <#--* 数据集合权限校验-->
* @param userPermission <#--* @param userPermission-->
* @param entityName <#--* @param entityName-->
* @param dataSetName <#--* @param dataSetName-->
* userPermission:{"ENTITY":{"DEACTION":{"READ":["CURORG"]},"DATASET":{"Default":["CURORG"]}}} <#--* userPermission:{"ENTITY":{"DEACTION":{"READ":["CURORG"]},"DATASET":{"Default":["CURORG"]}}}-->
* @return <#--* @return-->
*/ <#--*/-->
private boolean validDataSetHasPermission(JSONObject userPermission,String entityName ,String dataSetName){ <#--private boolean validDataSetHasPermission(JSONObject userPermission,String entityName ,String dataSetName){-->
boolean hasPermission=false; <#--boolean hasPermission=false;-->
if(userPermission==null) <#--if(userPermission==null)-->
return false; <#--return false;-->
if(!userPermission.containsKey(entityName)) <#--if(!userPermission.containsKey(entityName))-->
return false; <#--return false;-->
JSONObject entity=userPermission.getJSONObject(entityName);//获取实体 <#--JSONObject entity=userPermission.getJSONObject(entityName);//获取实体-->
if(!entity.containsKey(DataSetTag)) <#--if(!entity.containsKey(DataSetTag))-->
return false; <#--return false;-->
JSONObject dataSetList=entity.getJSONObject(DataSetTag);//获取数据集 <#--JSONObject dataSetList=entity.getJSONObject(DataSetTag);//获取数据集-->
if(!dataSetList.containsKey(dataSetName)) <#--if(!dataSetList.containsKey(dataSetName))-->
return false; <#--return false;-->
JSONArray dataRange=dataSetList.getJSONArray(dataSetName);//获取数据范围 <#--JSONArray dataRange=dataSetList.getJSONArray(dataSetName);//获取数据范围-->
if(dataRange!=null && dataRange.size()>0){ <#--if(dataRange!=null && dataRange.size()>0){-->
hasPermission=true; <#--hasPermission=true;-->
} <#--}-->
return hasPermission; <#--return hasPermission;-->
} <#--}-->
/** /**
* 根据实体存储模式,进行鉴权 * 根据实体存储模式,进行鉴权
...@@ -442,28 +442,28 @@ public class AuthPermissionEvaluator implements PermissionEvaluator { ...@@ -442,28 +442,28 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
for(int i=0;i<oppriList.size();i++){ for(int i=0;i<oppriList.size();i++){
String permissionCond=oppriList.getString(i);//权限配置条件 String permissionCond=oppriList.getString(i);//权限配置条件
if(permissionCond.equals("CURORG")){ //本单位 if(permissionCond.equals("curorg")){ //本单位
permissionSQL.or(new QueryBuilder().and(orgField).is(AuthenticationUser.getAuthenticationUser().getOrgid()).get()); permissionSQL.or(new QueryBuilder().and(orgField).is(AuthenticationUser.getAuthenticationUser().getOrgid()).get());
} }
else if(permissionCond.equals("PORG")){//上级单位 else if(permissionCond.equals("porg")){//上级单位
permissionSQL.or(new QueryBuilder().and(orgField).in(formatStringArr(orgParent)).get()); permissionSQL.or(new QueryBuilder().and(orgField).in(formatStringArr(orgParent)).get());
} }
else if(permissionCond.equals("SORG")){//下级单位 else if(permissionCond.equals("sorg")){//下级单位
permissionSQL.or(new QueryBuilder().and(orgField).in(formatStringArr(orgChild)).get()); permissionSQL.or(new QueryBuilder().and(orgField).in(formatStringArr(orgChild)).get());
} }
else if(permissionCond.equals("CREATEMAN")){//建立人 else if(permissionCond.equals("createman")){//建立人
permissionSQL.or(new QueryBuilder().and(createManField).is(AuthenticationUser.getAuthenticationUser().getUserid()).get()); permissionSQL.or(new QueryBuilder().and(createManField).is(AuthenticationUser.getAuthenticationUser().getUserid()).get());
} }
else if(permissionCond.equals("CURORGDEPT")){//本部门 else if(permissionCond.equals("curorgdept")){//本部门
permissionSQL.or(new QueryBuilder().and(orgDeptField).is(AuthenticationUser.getAuthenticationUser().getMdeptid()).get()); permissionSQL.or(new QueryBuilder().and(orgDeptField).is(AuthenticationUser.getAuthenticationUser().getMdeptid()).get());
} }
else if(permissionCond.equals("PORGDEPT")){//上级部门 else if(permissionCond.equals("porgdept")){//上级部门
permissionSQL.or(new QueryBuilder().and(orgDeptField).in(formatStringArr(orgDeptParent)).get()); permissionSQL.or(new QueryBuilder().and(orgDeptField).in(formatStringArr(orgDeptParent)).get());
} }
else if(permissionCond.equals("SORGDEPT")){//下级部门 else if(permissionCond.equals("sorgdept")){//下级部门
permissionSQL.or(new QueryBuilder().and(orgDeptField).in(formatStringArr(orgDeptChild)).get()); permissionSQL.or(new QueryBuilder().and(orgDeptField).in(formatStringArr(orgDeptChild)).get());
} }
else if(permissionCond.equals("ALL")){ else if(permissionCond.equals("all")){
permissionSQL.or(new QueryBuilder().get()); permissionSQL.or(new QueryBuilder().get());
} }
} }
...@@ -493,28 +493,28 @@ public class AuthPermissionEvaluator implements PermissionEvaluator { ...@@ -493,28 +493,28 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
for(int i=0;i<oppriList.size();i++){ for(int i=0;i<oppriList.size();i++){
permissionSQL.append("OR"); permissionSQL.append("OR");
String permissionCond=oppriList.getString(i);//权限配置条件 String permissionCond=oppriList.getString(i);//权限配置条件
if(permissionCond.equals("CURORG")){ //本单位 if(permissionCond.equals("curorg")){ //本单位
permissionSQL.append(String.format("(%s='%s')",orgField,AuthenticationUser.getAuthenticationUser().getOrgid())); permissionSQL.append(String.format("(%s='%s')",orgField,AuthenticationUser.getAuthenticationUser().getOrgid()));
} }
else if(permissionCond.equals("PORG")){//上级单位 else if(permissionCond.equals("porg")){//上级单位
permissionSQL.append(String.format(" %s in(%s) ", orgField, formatStringArr(orgParent))); permissionSQL.append(String.format(" %s in(%s) ", orgField, formatStringArr(orgParent)));
} }
else if(permissionCond.equals("SORG")){//下级单位 else if(permissionCond.equals("sorg")){//下级单位
permissionSQL.append(String.format(" %s in(%s) ", orgField, formatStringArr(orgChild))); permissionSQL.append(String.format(" %s in(%s) ", orgField, formatStringArr(orgChild)));
} }
else if(permissionCond.equals("CREATEMAN")){//建立人 else if(permissionCond.equals("createman")){//建立人
permissionSQL.append(String.format("(%s='%s')",createManField,AuthenticationUser.getAuthenticationUser().getUserid())); permissionSQL.append(String.format("(%s='%s')",createManField,AuthenticationUser.getAuthenticationUser().getUserid()));
} }
else if(permissionCond.equals("CURORGDEPT")){//本部门 else if(permissionCond.equals("curorgdept")){//本部门
permissionSQL.append(String.format("(%s='%s')",orgDeptField,AuthenticationUser.getAuthenticationUser().getMdeptid())); permissionSQL.append(String.format("(%s='%s')",orgDeptField,AuthenticationUser.getAuthenticationUser().getMdeptid()));
} }
else if(permissionCond.equals("PORGDEPT")){//上级部门 else if(permissionCond.equals("porgdept")){//上级部门
permissionSQL.append(String.format(" %s in (%s) ", orgDeptField, formatStringArr(orgDeptParent))); permissionSQL.append(String.format(" %s in (%s) ", orgDeptField, formatStringArr(orgDeptParent)));
} }
else if(permissionCond.equals("SORGDEPT")){//下级部门 else if(permissionCond.equals("sorgdept")){//下级部门
permissionSQL.append(String.format(" %s in (%s) ", orgDeptField, formatStringArr(orgDeptChild))); permissionSQL.append(String.format(" %s in (%s) ", orgDeptField, formatStringArr(orgDeptChild)));
} }
else if(permissionCond.equals("ALL")){//全部数据 else if(permissionCond.equals("all")){//全部数据
permissionSQL.append("(1=1)"); permissionSQL.append("(1=1)");
} }
else{ else{
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册