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

权限自定义代码

上级 5274a109
...@@ -14,11 +14,9 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -14,11 +14,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -116,6 +114,7 @@ public class ClientAuthenticationResource ...@@ -116,6 +114,7 @@ public class ClientAuthenticationResource
"\tT2.pssourceid as pssourceid,\n" + "\tT2.pssourceid as pssourceid,\n" +
"\tT2.pssourcetype as pssourcetype,\n" + "\tT2.pssourcetype as pssourcetype,\n" +
"\tT2.psdedatarangeid as dedatarange,\n" + "\tT2.psdedatarangeid as dedatarange,\n" +
"\tT1.sys_permissionid as permissionid,\n"+
"\tT1.sys_permissionname\n" + "\tT1.sys_permissionname\n" +
"FROM\n" + "FROM\n" +
"\tibzrole_permission T\n" + "\tibzrole_permission T\n" +
...@@ -129,7 +128,7 @@ public class ClientAuthenticationResource ...@@ -129,7 +128,7 @@ public class ClientAuthenticationResource
"\t WHERE\n" + "\t WHERE\n" +
"\t T1.USERID = #{et.param0}\n" + "\t T1.USERID = #{et.param0}\n" +
"\t)\n" + "\t)\n" +
"AND T1.PERMISSIONTYPE = #{et.param1} "; "AND T1.PERMISSIONTYPE = #{et.param1} and t1.enable=1 ";
//统一资源 //统一资源
String uniResSQL="SELECT\n" + String uniResSQL="SELECT\n" +
...@@ -148,7 +147,7 @@ public class ClientAuthenticationResource ...@@ -148,7 +147,7 @@ public class ClientAuthenticationResource
"\t WHERE\n" + "\t WHERE\n" +
"\t T1.USERID = #{et.param0}\n" + "\t T1.USERID = #{et.param0}\n" +
"\t)\n" + "\t)\n" +
"AND T1.PERMISSIONTYPE = #{et.param1} "; "AND T1.PERMISSIONTYPE = #{et.param1} and t1.enable=1";
//应用菜单 //应用菜单
String appMenuSQL="SELECT\n" + String appMenuSQL="SELECT\n" +
...@@ -166,7 +165,7 @@ public class ClientAuthenticationResource ...@@ -166,7 +165,7 @@ public class ClientAuthenticationResource
"\t WHERE\n" + "\t WHERE\n" +
"\t T1.USERID = #{et.param0}\n" + "\t T1.USERID = #{et.param0}\n" +
"\t)\n" + "\t)\n" +
"AND T1.PERMISSIONTYPE = #{et.param1} "; "AND T1.PERMISSIONTYPE = #{et.param1} and t1.enable=1";
Map opprivParam=new HashMap(); Map opprivParam=new HashMap();
...@@ -192,9 +191,34 @@ public class ClientAuthenticationResource ...@@ -192,9 +191,34 @@ public class ClientAuthenticationResource
permissionObj.put("entities",entities); permissionObj.put("entities",entities);
permissionObj.put("unires",uniRes); permissionObj.put("unires",uniRes);
permissionObj.put("appmenu",appMenuItem); permissionObj.put("appmenu",appMenuItem);
permissionObj.put("authorities",getAuthoritiesArray(user,entitiesList));
user.setPermissionList(permissionObj); user.setPermissionList(permissionObj);
} }
/**
* 获取用户资源
* @return
*/
private JSONArray getAuthoritiesArray(AuthenticationUser user,List<JSONObject> dataRangeArray) {
JSONArray authoritiesArray =new JSONArray();
if(dataRangeArray.size()>0){
for(int a=0;a<dataRangeArray.size();a++){
JSONObject dataRangeObj=dataRangeArray.get(a);
String dataRangeId=dataRangeObj.getString("dedatarange");
String permissionId=dataRangeObj.getString("permissionid");
if( !StringUtils.isEmpty(dataRangeId) && !StringUtils.isEmpty(permissionId) && dataRangeId.equalsIgnoreCase("all") ){
authoritiesArray.add(permissionId);
}
}
}
if(user.getSuperuser()==1){
authoritiesArray.add("ROLE_SUPERADMIN");
}
return authoritiesArray;
}
/** /**
* 获取应用菜单 * 获取应用菜单
* @param menuItemList * @param menuItemList
...@@ -205,6 +229,8 @@ public class ClientAuthenticationResource ...@@ -205,6 +229,8 @@ public class ClientAuthenticationResource
for(int a=0;a<menuItemList.size();a++){ for(int a=0;a<menuItemList.size();a++){
JSONObject menuItem=menuItemList.get(a); JSONObject menuItem=menuItemList.get(a);
JSONObject newMenuItem=new JSONObject(); JSONObject newMenuItem=new JSONObject();
newMenuItem.put("appid",menuItem.getString("MENUITEMID"));
newMenuItem.put("appmenuid",menuItem.getString("MENUITEMNAME"));
newMenuItem.put("menuitemid",menuItem.getString("MENUITEMID")); newMenuItem.put("menuitemid",menuItem.getString("MENUITEMID"));
newMenuItem.put("menuitemname",menuItem.getString("MENUITEMNAME")); newMenuItem.put("menuitemname",menuItem.getString("MENUITEMNAME"));
menuItemArr.add(newMenuItem); menuItemArr.add(newMenuItem);
...@@ -278,6 +304,4 @@ public class ClientAuthenticationResource ...@@ -278,6 +304,4 @@ public class ClientAuthenticationResource
user.setOrgInfo(orgInfo); user.setOrgInfo(orgInfo);
} }
} }
...@@ -10,12 +10,13 @@ import cn.ibizlab.core.uaa.service.ISYS_PSDEOPPRIVService; ...@@ -10,12 +10,13 @@ import cn.ibizlab.core.uaa.service.ISYS_PSDEOPPRIVService;
import cn.ibizlab.core.uaa.service.ISYS_PSSYSUNIRESService; import cn.ibizlab.core.uaa.service.ISYS_PSSYSUNIRESService;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.JsonNode;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.sql.Timestamp; import java.sql.Timestamp;
...@@ -171,7 +172,7 @@ public class PermissionFeignService { ...@@ -171,7 +172,7 @@ public class PermissionFeignService {
*/ */
private void saveMenuItem(String menuItemId,String menuItemName , String parentMenuItemId, String systemId, String appId, String appName, String appMenuId,String appMenuName, List<SYS_PERMISSION> permission_list, List<SYS_PSAPPMENUITEM> menu_list){ private void saveMenuItem(String menuItemId,String menuItemName , String parentMenuItemId, String systemId, String appId, String appName, String appMenuId,String appMenuName, List<SYS_PERMISSION> permission_list, List<SYS_PSAPPMENUITEM> menu_list){
String sysPermissionId=DigestUtils.md5DigestAsHex(String.format("%s%s%s%s",systemId,appId,appMenuId,menuItemId).getBytes()); String sysPermissionId=String.format("%s-%s-%s-%s",systemId,appId,appMenuId,menuItemId);
SYS_PERMISSION sys_permission =new SYS_PERMISSION(); SYS_PERMISSION sys_permission =new SYS_PERMISSION();
sys_permission.setPermissionid(sysPermissionId); sys_permission.setPermissionid(sysPermissionId);
sys_permission.setPermissionname(menuItemName); sys_permission.setPermissionname(menuItemName);
...@@ -222,7 +223,7 @@ public class PermissionFeignService { ...@@ -222,7 +223,7 @@ public class PermissionFeignService {
String uniResCode=uniRes.getString("unirescode"); String uniResCode=uniRes.getString("unirescode");
String uniResName=uniRes.getString("uniresname"); String uniResName=uniRes.getString("uniresname");
String uniResId= DigestUtils.md5DigestAsHex(String.format("%s%s",systemId,uniResCode).getBytes()); String uniResId= String.format("%s-%s",systemId,uniResCode);
SYS_PERMISSION sys_permission =new SYS_PERMISSION(); SYS_PERMISSION sys_permission =new SYS_PERMISSION();
sys_permission.setPermissionid(uniResId); sys_permission.setPermissionid(uniResId);
...@@ -282,6 +283,8 @@ public class PermissionFeignService { ...@@ -282,6 +283,8 @@ public class PermissionFeignService {
//数据查询与自定义行为不生成预置范围相关数据 //数据查询与自定义行为不生成预置范围相关数据
if( (permissionType.equalsIgnoreCase(DEActionType) && !deActionType.equalsIgnoreCase("BUILTIN")) || (permissionType.equalsIgnoreCase(DataSetTag)) ) { if( (permissionType.equalsIgnoreCase(DEActionType) && !deActionType.equalsIgnoreCase("BUILTIN")) || (permissionType.equalsIgnoreCase(DataSetTag)) ) {
JSONObject dataScope =new JSONObject(); JSONObject dataScope =new JSONObject();
dataScope.put("id","all");
dataScope.put("name","全部数据");
createDataScope(entity,deSource,dataScope,permissionType,systemId,ability_list,opprivList); createDataScope(entity,deSource,dataScope,permissionType,systemId,ability_list,opprivList);
} }
else{ else{
...@@ -315,7 +318,7 @@ public class PermissionFeignService { ...@@ -315,7 +318,7 @@ public class PermissionFeignService {
String dataRangeId=dataScope.getString("id"); String dataRangeId=dataScope.getString("id");
String dataRangeName=dataScope.getString("name"); String dataRangeName=dataScope.getString("name");
String permissionId= DigestUtils.md5DigestAsHex(String.format("%s%s%s%s",systemId,deName,sourceId,dataRangeId).getBytes()); String permissionId=String.format("%s-%s-%s-%s",systemId,deName,sourceId,dataRangeId);
String permissionName; String permissionName;
if(!StringUtils.isEmpty(dataRangeName)){ if(!StringUtils.isEmpty(dataRangeName)){
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册