From 9d092801e881e9639de8e37ae965cd9d54a072e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=81=B0=E5=A4=AA=E7=8B=BC?= <1214761728@qq.com> Date: Wed, 27 Oct 2021 10:59:36 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E6=A0=91=E5=BD=A2=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cetc32/dh/common/utils/TreeNode.java | 84 +++++++++++++++++++ .../dh/controller/rest/AuthController.java | 16 +++- .../controller/rest/AuthRoleController.java | 21 ++++- 3 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/cetc32/dh/common/utils/TreeNode.java 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 0000000..17d7163 --- /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 2aeb0ae..df4e716 100644 --- a/src/main/java/com/cetc32/dh/controller/rest/AuthController.java +++ b/src/main/java/com/cetc32/dh/controller/rest/AuthController.java @@ -394,6 +394,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){ @@ -401,9 +402,22 @@ 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(); + 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()); } /** 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 880c839..9310045 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); + } } -- Gitee From 6a0174854735709ead975a8d8cc31b78e78526a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=81=B0=E5=A4=AA=E7=8B=BC?= <1214761728@qq.com> Date: Wed, 27 Oct 2021 13:39:06 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E6=A0=91=E5=BD=A2=E7=BB=93=E6=9E=84=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=9F=BA=E4=BA=8Epermission=E7=9A=84=E4=BC=98=E5=85=88?= =?UTF-8?q?=E7=BA=A7=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cetc32/dh/beans/ResultUserInfo.java | 5 +++++ .../dh/controller/rest/AuthController.java | 16 +++++++++++++--- .../java/com/cetc32/dh/entity/BaseAdminUser.java | 14 ++++++++++++++ src/main/resources/application-xwy.yml | 10 ++++++---- .../resources/mapper/BaseAdminUserMapper.xml | 10 +++++++++- 5 files changed, 47 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/cetc32/dh/beans/ResultUserInfo.java b/src/main/java/com/cetc32/dh/beans/ResultUserInfo.java index a2140f1..46be144 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/controller/rest/AuthController.java b/src/main/java/com/cetc32/dh/controller/rest/AuthController.java index d57b9e1..f99c6c4 100644 --- a/src/main/java/com/cetc32/dh/controller/rest/AuthController.java +++ b/src/main/java/com/cetc32/dh/controller/rest/AuthController.java @@ -405,8 +405,13 @@ public class AuthController { } 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){ @@ -636,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/entity/BaseAdminUser.java b/src/main/java/com/cetc32/dh/entity/BaseAdminUser.java index 37e5d94..fb78e18 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 cbd0e20..2e7de79 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,12 +63,12 @@ eip: http://192.168.1.209:8080/ #passportUrl: ${sso.authcenter}/?ReturnUrl= #defaultLoginRequiredEnable: false sso: - 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 8a06f6f..0447e1d 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} + -- Gitee