Procházet zdrojové kódy

新增用户权限接口

tsurumure před 10 měsíci
rodič
revize
c7edd99fab

+ 5 - 0
README.md

@@ -84,6 +84,11 @@ public Result getAuthDemo() {
 
 #### 开发规范
 
+###### 命名风格
+- 入参:下划线命名 (例如: `user_id`)
+- 变量:小驼峰命名 (例如: `userList`)
+- 常量:全大写 (例如: `APPID`)
+
 ###### MySQL
 
 - 禁止使用外键

+ 3 - 0
db/sys_user_role_module.sql

@@ -53,6 +53,9 @@ INSERT INTO sys_user_role_module(id, parent_id, module_name, sort) VALUES
             ('3.3.9', '3.3', '系统用户-查询积分', null),
             ('3.3.10', '3.3', '系统用户-查询积分操作记录', null),
         ('3.4', '3', '系统用户权限', null),
+            ('3.4.1', '3.4', '查询用户权限', null),
+            ('3.4.1.2', '3.4', '查询他人用户权限', null),
+
         -- ('3.3', '3', '会员用户-列表'),
         --     ('3.3.1', '3.3', '会员用户-详情'),
         --     ('3.3.2', '3.3', '会员用户-创建'),

+ 1 - 0
db/sys_user_role_module_relation.sql

@@ -51,6 +51,7 @@ INSERT INTO sys_user_role_module_relation(role_id, module_id) VALUES
             (1, '3.3.8'), (1, '3.3.9'), (1, '3.3.10'),
 #             (1, '3.3.1'), (1, '3.3.2'), (1, '3.3.3'), (1, '3.3.4'), (1, '3.3.5'), (1, '3.3.6'), (1, '3.3.7'),
         (1, '3.4'),
+            (1, '3.4.1'), (1, '3.4.1.2'),
     (1, '4'),
         (1, '4.1'),
             (1, '4.1.1'), (1, '4.1.2'), (1, '4.1.3'), (1, '4.1.4'), (1, '4.1.5'),

+ 1 - 1
src/main/java/com/backendsys/exception/GlobalExceptionHandler.java

@@ -270,7 +270,7 @@ public class GlobalExceptionHandler implements ResponseBodyAdvice<Object> {
     @ExceptionHandler(AccessDeniedException.class)
     public Result handleAccessDeniedException(AccessDeniedException e) {
         System.out.println("****** AccessDeniedException.class: ******");
-        printErrorException(e, true);
+        printWarnException(e);
         return Result.error(ResultEnum.AUTH_ROLE_ERROR.getCode(), ResultEnum.AUTH_ROLE_ERROR.getMessage());
     }
 

+ 2 - 2
src/main/java/com/backendsys/modules/system/controller/SysUserV2Controller.java

@@ -48,7 +48,7 @@ public class SysUserV2Controller {
 
 
     @Operation(summary = "获得系统用户权限")
-    @PreAuthorize("@sr.hasPermission('3.4')")
+    @PreAuthorize("@sr.hasPermission('3.4.1')")
     @GetMapping("/api/v2/system/user/getUserPermission")
 //    public Result getUserPermission(@Validated(SysUserInfo.Primarys.class) SysUserInfo userInfo) {
 //    public Result getUserPermission(@NotEmpty(message = "user_id 不能为空") String user_id) {
@@ -60,7 +60,7 @@ public class SysUserV2Controller {
         // 查询他人的用户信息
         // - 查询自己 (无需权限)
         // - 查询他人 (需要权限或超级管理员)
-        if (user_id != SecurityUtil.getUserId() && !SecurityUtil.hasPermission("3.4") && !SecurityUtil.isSuper()) {
+        if (user_id != SecurityUtil.getUserId() && !SecurityUtil.hasPermission("3.4.1.2") && !SecurityUtil.isSuper()) {
             throw new CustException(SecurityEnum.NOAUTH);
         }
 

+ 3 - 2
src/main/java/com/backendsys/modules/system/dao/SysUserRoleModuleRelationDao.java

@@ -1,13 +1,14 @@
 package com.backendsys.modules.system.dao;
 
+import com.backendsys.modules.system.entity.SysUser.SysUserRoleModuleRelation;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
 @Mapper
-public interface SysUserRoleModuleRelationDao extends BaseMapper<SysUserRoleModuleRelationDao> {
+public interface SysUserRoleModuleRelationDao extends BaseMapper<SysUserRoleModuleRelation> {
 
-    List<Long> selectUserRoleModuleIdsByRoleIds(List<Long> role_ids);
+    List<String> selectUserRoleModuleIdsByRoleIds(List<Long> role_ids);
 
 }

+ 0 - 1
src/main/java/com/backendsys/modules/system/entity/SysUser/SysUserRoleRelation.java

@@ -1,6 +1,5 @@
 package com.backendsys.modules.system.entity.SysUser;
 
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
src/main/java/com/backendsys/modules/system/service/SysUserV2Service.java

@@ -12,6 +12,6 @@ public interface SysUserV2Service extends IService<SysUser> {
     SysUserInfo selectUserInfo(Long user_id);
 
     // 获得系统用户权限
-    List<Long> selectUserModule(Long user_id);
+    List<String> selectUserModule(Long user_id);
 
 }

+ 8 - 8
src/main/java/com/backendsys/modules/system/service/impl/SysUserV2ServiceImpl.java

@@ -1,5 +1,6 @@
 package com.backendsys.modules.system.service.impl;
 
+import cn.hutool.core.collection.ListUtil;
 import com.backendsys.modules.system.dao.*;
 import com.backendsys.modules.system.entity.SysUser.SysUser;
 import com.backendsys.modules.system.entity.SysUser.SysUserInfo;
@@ -59,20 +60,19 @@ public class SysUserV2ServiceImpl extends ServiceImpl<SysUserDao, SysUser> imple
      * 获得系统用户权限
      */
     @Override
-    public List<Long> selectUserModule(Long user_id) {
+    public List<String> selectUserModule(Long user_id) {
 
         // 获得当前角色关系(集合)
-        List<Long> user_role_ids = sysUserRoleRelationDao.selectUserRoleIds(user_id);
-        System.out.println("user_role_ids = " + user_role_ids);
+        List<Long> userRoleIds = sysUserRoleRelationDao.selectUserRoleIds(user_id);
 
         // 获得当前角色关系(集合) 所对应的权限(集合)
-        List<Long> role_module_ids = new ArrayList<>();
-        if (user_role_ids.size() > 0) {
-             role_module_ids = sysUserRoleModuleRelationDao.selectUserRoleModuleIdsByRoleIds(user_role_ids);
-            System.out.println("role_module_ids = " + role_module_ids);
+        List<String> roleModuleIds = new ArrayList<>();
+        if (userRoleIds.size() > 0) {
+            roleModuleIds = sysUserRoleModuleRelationDao.selectUserRoleModuleIdsByRoleIds(userRoleIds);
+            roleModuleIds = roleModuleIds.stream().distinct().collect(Collectors.toList());
         }
 
-        return role_module_ids;
+        return roleModuleIds;
     }
 
 

+ 1 - 1
src/main/resources/mapper/system/SysUserRoleModuleRelationDao.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.backendsys.modules.system.dao.SysUserRoleModuleRelationDao">
 
-    <select id="selectUserRoleModuleIdsByRoleIds" resultType="java.lang.Long">
+    <select id="selectUserRoleModuleIdsByRoleIds" resultType="java.lang.String">
         SELECT module_id
         FROM sys_user_role_module_relation
         WHERE role_id IN