diff --git a/src/main/java/com/cetc32/dh/beans/ResultUserInfo.java b/src/main/java/com/cetc32/dh/beans/ResultUserInfo.java index a2140f11fdfdd48a8be7bcdd7fdb4cea0ed2e3bc..46be14466e0c7404b96fb9a6eecc62b3fb2a955b 100644 --- a/src/main/java/com/cetc32/dh/beans/ResultUserInfo.java +++ b/src/main/java/com/cetc32/dh/beans/ResultUserInfo.java @@ -354,4 +354,9 @@ public class ResultUserInfo extends NumberS { public void setPwd(String pwd) { this.pwd = pwd; } + + + public void setPermiss(String permiss) { + setPermissions(permiss); + } } diff --git a/src/main/java/com/cetc32/dh/common/utils/TreeNode.java b/src/main/java/com/cetc32/dh/common/utils/TreeNode.java new file mode 100644 index 0000000000000000000000000000000000000000..17d7163e715857fc9dc4ae4bbed1c917bdf2018a --- /dev/null +++ b/src/main/java/com/cetc32/dh/common/utils/TreeNode.java @@ -0,0 +1,84 @@ +/******************************************************************************* + * Copyright(C) CETC-32 + * @Description: + * @Author :徐文远 + * @version:1.0 + * @date : 2021/10/27 上午10:01 + ******************************************************************************/ +package com.cetc32.dh.common.utils; + +import java.util.ArrayList; +import java.util.List; + +public class TreeNode { + String key; + String value; + String title; + String pKey; + List leaf; + + public TreeNode(){} + public TreeNode(String key,String value){ + this(key,value,value); + } + public TreeNode(String key,String value,String title){ + this(key,value,title,null); + } + public TreeNode(String key,String value,String title,String pKey){ + this(key,value,title,pKey,null); + } + public TreeNode(String key,String value,String title,String pKey,List leaf){ + this.key =key; + this.value=value; + this.title =title; + this.pKey=pKey; + this.leaf =leaf; + } + + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getpKey() { + return pKey; + } + + public void setpKey(String pKey) { + this.pKey = pKey; + } + + public List getLeaf() { + return leaf; + } + + public void setLeaf(List leaf) { + this.leaf = leaf; + } + + public void addLeaf(TreeNode leaf){ + if(this.leaf==null) + this.leaf = new ArrayList<>(); + this.leaf.add(leaf); + } +} diff --git a/src/main/java/com/cetc32/dh/controller/rest/AuthController.java b/src/main/java/com/cetc32/dh/controller/rest/AuthController.java index c952b37f1fec9041ac9deca2c56720827757bdb3..f99c6c41c9a6431c6ecd2bb6f6433e78a979b43a 100644 --- a/src/main/java/com/cetc32/dh/controller/rest/AuthController.java +++ b/src/main/java/com/cetc32/dh/controller/rest/AuthController.java @@ -395,6 +395,7 @@ public class AuthController { @ApiImplicitParam(name = "results", value = "每页数据条数",dataType = "Integer",defaultValue = "10"), @ApiImplicitParam(name = "userStatus", value = "用户状态(-1:待审核,0:已删除,1:正常)",dataType = "Integer",defaultValue = "1") }) + @LoginSkipped @PostMapping(value = "/users") // public PageDataResult getUserList(@RequestBody UserInfo user_info){ public PageDataResult getUserList(@RequestBody Map userInfo){ @@ -402,9 +403,27 @@ public class AuthController { if(user_info.getSysUserName()!=null&&user_info.getSysUserName().contains("%")){ return new PageDataResult(0, new ArrayList<>(), user_info.getOffset()); } + List list =adminRoleService.getRoleList(); + List users =userService.findUserByCondition(user_info); + + for(ResultUserInfoDe u:users){ + ListroleIds =u.getRole(); + //确保权限优先级为当前记录 + System.out.println(u.getPermissions()); + if(u.getPermissions() != null && 0 < u.getPermissions().size()) + continue; + if(null!=u.getRole()) + for(Integer id:roleIds){ + for(ResultUserRole role:list){ + if(role.getId() == id){ + u.addPermissions(role.getSystemMenu()); + } + } + } + } // user_info.setUserStatus(1); return new PageDataResult(userService.countUserByCondition(user_info), - userService.findUserByCondition(user_info), + users, user_info.getOffset()); } /** @@ -622,9 +641,14 @@ public class AuthController { data.setAreacode(user.getAreacode()); data.setDepartment(user.getDepartment()); data.setPwd(user.getSysUserPwd()); - if(resultUserRole!=null){ - for(ResultUserRole r :resultUserRole) - data.addPermissions(r.getSystemMenu()); + if(resultUserRole!=null ){ + //确保user 的permission中有权限时候忽略角色权限 + if(StringUtils.isBlank(user.getPermissions())){ + for(ResultUserRole r :resultUserRole) + data.addPermissions(r.getSystemMenu()); + }else{ + data.addPermissions(Arrays.asList(user.getPermissions().split(","))); + } } return ResponseData.success(data); } diff --git a/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java b/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java index 880c83907461adf5b5f5cc8cfa588c1a4b33af56..9310045baecdec8f94f281b474e3d186b2988714 100644 --- a/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java +++ b/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java @@ -3,6 +3,7 @@ package com.cetc32.dh.controller.rest; import com.cetc32.dh.beans.ResultUserRole; import com.cetc32.dh.common.response.ResponseResult; import com.cetc32.dh.common.utils.Tools; +import com.cetc32.dh.common.utils.TreeNode; import com.cetc32.dh.entity.BaseAdminRole; import com.cetc32.dh.common.response.PageDataResult; import com.cetc32.dh.common.response.ResponseData; @@ -12,6 +13,7 @@ import com.cetc32.dh.service.impl.AdminRoleServiceImpl; import com.cetc32.dh.service.impl.AdminUserServiceImpl; import com.cetc32.webutil.common.annotations.AccessPermission; import com.cetc32.webutil.common.annotations.LoginRequired; +import com.cetc32.webutil.common.annotations.LoginSkipped; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -20,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; +import java.util.List; import java.util.Map; @LoginRequired @@ -130,7 +133,7 @@ public class AuthRoleController { return ResponseData.error("角色id不能为空!"); } ResultUserRole rr=adminRoleService.findRoleById(id); - if(rr != null && rr.getIsDefault() == 1) + if(rr != null && rr.getIsDefault() <= 10) { return ResponseData.error("内置角色不能删除!"); } @@ -147,4 +150,20 @@ public class AuthRoleController { return ResponseData.error("删除失败!"); } + @GetMapping("/tree") + @LoginSkipped + @ResponseBody + public ResponseData roleTree() { + List list = adminRoleService.getRoleList(); + List treeNodes =new ArrayList<>(); + for(ResultUserRole r:list){ + TreeNode node =new TreeNode(r.getId()+"",r.getId()+"",r.getRoleName()); + List sms= r.getSystemMenu(); + for(String sm:sms){ + node.addLeaf(new TreeNode(sm,sm,sm.substring(4))); + } + treeNodes.add(node); + } + return ResponseData.success(treeNodes); + } } diff --git a/src/main/java/com/cetc32/dh/entity/BaseAdminUser.java b/src/main/java/com/cetc32/dh/entity/BaseAdminUser.java index 37e5d94c5c2b858f7dc614c6c39835e9be5d3b8d..fb78e1896d2c5bc22bfc7d0b956c8a643c3c4c11 100644 --- a/src/main/java/com/cetc32/dh/entity/BaseAdminUser.java +++ b/src/main/java/com/cetc32/dh/entity/BaseAdminUser.java @@ -155,6 +155,11 @@ public class BaseAdminUser extends NumberS { @Column(name = "userbd") private String userBD; + /** + * + * **/ + @Column(name ="permissions") + private String permissions; @@ -585,6 +590,15 @@ public class BaseAdminUser extends NumberS { public void setUserBD(String userBD) { this.userBD = userBD; } + + public String getPermissions() { + return permissions; + } + + public void setPermissions(String permissions) { + this.permissions = permissions; + } + /** * 实体类转换成字符串 */ diff --git a/src/main/resources/application-xwy.yml b/src/main/resources/application-xwy.yml index 88f4f7fb55258817d3d3289a07cc520061623384..2e7de795dc4041b896ff08a622aa1a76c94d2077 100644 --- a/src/main/resources/application-xwy.yml +++ b/src/main/resources/application-xwy.yml @@ -7,9 +7,11 @@ spring: application: name: dhManager datasource: - url: jdbc:postgresql://180.184.65.203:5432/dhmanage + #url: jdbc:postgresql://180.184.65.203:5432/dhmanage + url: jdbc:postgresql://192.168.1.60:5432/dhmanage username: postgres - password: Zdk@824. + password: 123456 + #password: Zdk@824. driver-class-name: org.postgresql.Driver # datasource: @@ -61,13 +63,12 @@ eip: http://192.168.1.209:8080/ #passportUrl: ${sso.authcenter}/?ReturnUrl= #defaultLoginRequiredEnable: false sso: - ##authcenter: http://192.168.71.239:8081 - authcenter: http://192.168.43.138:8081 + authcenter: http://192.168.1.206:8081 verifyUrl: ${sso.authcenter}/rest/auth/verify?token= passportUrl: ${sso.authcenter}/?ReturnUrl= defaultLoginRequiredEnable: false permission: S000^接口用户@/rest/auth/**;*权限管理@/**; - sysurl : http://192.168.43.138:${server.port} + sysurl : http://192.168.1.206:${server.port} sysname : 用户中心 registerUrl : ${sso.authcenter}/rest/api/sys/sync #loginInclude: /rest/auth/**,/rest/role/**,/rest/audit/** diff --git a/src/main/resources/mapper/BaseAdminUserMapper.xml b/src/main/resources/mapper/BaseAdminUserMapper.xml index 8a06f6fc0c5fd847aced103da6e895bdb9e6bc0a..0447e1de38ecbd9297411e57b403617cbfd3c133 100644 --- a/src/main/resources/mapper/BaseAdminUserMapper.xml +++ b/src/main/resources/mapper/BaseAdminUserMapper.xml @@ -25,6 +25,7 @@ + @@ -90,6 +91,7 @@ realname = #{realName} + permissions = #{permissions} WHERE id = #{id} @@ -138,7 +140,7 @@ SELECT id,sys_user_name as username,role_id as role,security,department as department,areacode as areacode,user_status as userStatus , reg_time as regTime, web_login_time as webLoginDate, web_login_status as webLoginStatus ,web_login_count as webLoginCount, app_login_time as appLoginDate, app_login_status as appLoginStatus ,app_login_count as appLoginCount, - loginfailed as loginFailed,realname as realName ,user_phone as userPhone,userbd,realdepartment + loginfailed as loginFailed,realname as realName ,user_phone as userPhone,userbd,realdepartment,permissions as permiss from base_admin_user @@ -268,6 +270,9 @@ userbd, + + permissions + @@ -328,6 +333,9 @@ #{userBD}, + + #{permissions} +