Browse Source

feat: 权限点新增

wanggaokun 3 tuần trước cách đây
mục cha
commit
29a44d1c67

+ 5 - 0
eco-common/com-security/src/main/java/org/eco/vip/security/core/domain/SecurityPermissionBO.java

@@ -29,6 +29,11 @@ public class SecurityPermissionBO implements Serializable {
      */
     private String id;
 
+    /**
+     * 模块名称
+     */
+    private String moduleName;
+
     /**
      * 名称
      */

+ 5 - 0
eco-common/com-security/src/main/java/org/eco/vip/security/core/domain/SecurityPermissionVO.java

@@ -23,6 +23,11 @@ public class SecurityPermissionVO implements Serializable {
      */
     private String id;
 
+    /**
+     * 模块名称
+     */
+    private String moduleName;
+
     /**
      * 名称
      */

+ 6 - 5
eco-common/com-security/src/main/java/org/eco/vip/security/handler/PermissionHandler.java

@@ -69,8 +69,9 @@ public class PermissionHandler implements ApplicationListener<ApplicationReadyEv
                 SaCheckPermission permission = AnnotationUtils.findAnnotation(method, SaCheckPermission.class);
                 if (ObjUtils.isNotNull(permission)) {
                     String[] perms = permission.value();
+                    String type = permission.type();
                     for (String perm : perms) {
-                        SecurityPermissionBO bo = SecurityPermissionBO.builder().name(resourceName).code(perm).build();
+                        SecurityPermissionBO bo = SecurityPermissionBO.builder().moduleName(resourceName).name(type).code(perm).build();
                         permissionBoList.add(bo);
                     }
                 }
@@ -103,21 +104,21 @@ public class PermissionHandler implements ApplicationListener<ApplicationReadyEv
         // 需要删除的集合
         List<SecurityPermissionBO> delPermissionBoList = new ArrayList<>();
         permissionBoList.forEach(bo -> {
-            boolean result = permissionVoList.stream().anyMatch(vo -> StrUtils.equals(vo.getCode().concat(vo.getName()), bo.getCode().concat(bo.getName())));
+            boolean result = permissionVoList.stream().anyMatch(vo -> StrUtils.equals(vo.getCode().concat(vo.getName()), bo.getCode().concat(bo.getModuleName())));
             if (!result) {
                 addPermissionBoList.add(bo);
             }
         });
         permissionVoList.forEach(vo -> {
-            boolean result = permissionBoList.stream().noneMatch(bo -> StrUtils.equals(vo.getCode().concat(vo.getName()), bo.getCode().concat(bo.getName())));
+            boolean result = permissionBoList.stream().noneMatch(bo -> StrUtils.equals(vo.getCode().concat(vo.getName()), bo.getCode().concat(bo.getModuleName())));
             if (result) {
                 SecurityPermissionBO delPermissionBo = BeanUtils.copyProperties(vo, SecurityPermissionBO.class);
                 delPermissionBoList.add(delPermissionBo);
             }
 
         });
-        addPermissionBoList.forEach(bo -> log.info("新增权限编码:{}", bo.getCode().concat(bo.getName())));
-        delPermissionBoList.forEach(bo -> log.info("删除权限编码:{}", bo.getCode().concat(bo.getName())));
+        addPermissionBoList.forEach(bo -> log.info("新增权限编码:{}", bo.getCode().concat(bo.getModuleName())));
+        delPermissionBoList.forEach(bo -> log.info("删除权限编码:{}", bo.getCode().concat(bo.getModuleName())));
         // 新增
         if (CollUtils.isNotEmpty(addPermissionBoList)) {
             boolean isSuccess = securityPermissionService.addPermissionBatch(addPermissionBoList);

+ 2 - 2
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/controller/role/RoleController.java

@@ -40,7 +40,7 @@ import static org.eco.vip.core.pojo.CommonResult.success;
 @RestController
 @RequestMapping("/system/role")
 @Validated
-@PermissionsResource("role")
+@PermissionsResource("角色模块")
 public class RoleController {
     @Resource
     private IRoleService roleService;
@@ -62,7 +62,7 @@ public class RoleController {
     }
 
     @PostMapping("/add")
-    @SaCheckPermission("system:role:add")
+    @SaCheckPermission(value = "system:role:add", type = "新增")
     public CommonResult<String> add(@RequestBody @Valid RoleBO roleBO) {
         if (roleService.hasRoleByCode(roleBO.getCode())) {
             return fail("角色标识已存在!");

+ 5 - 0
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/permission/Permission.java

@@ -27,6 +27,11 @@ public class Permission implements Serializable {
     @Id
     private String id;
 
+    /**
+     * 模块名称
+     */
+    private String moduleName;
+
     /**
      * 名称
      */

+ 5 - 0
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/domain/permission/pojo/PermissionVO.java

@@ -27,6 +27,11 @@ public class PermissionVO implements Serializable {
      */
     private String id;
 
+    /**
+     * 模块名称
+     */
+    private String moduleName;
+
     /**
      * 名称
      */

+ 2 - 1
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/rolePerm/RolePermService.java

@@ -7,6 +7,7 @@ package org.eco.vip.nexus.core.service.rolePerm;
 
 import com.mybatisflex.core.update.UpdateChain;
 import jakarta.annotation.Resource;
+import org.eco.vip.nexus.core.domain.permission.Permission;
 import org.eco.vip.nexus.core.domain.permission.pojo.PermissionVO;
 import org.eco.vip.nexus.core.domain.rolePerm.RolePerm;
 import org.eco.vip.nexus.core.domain.rolePerm.pojo.RolePermBO;
@@ -38,7 +39,7 @@ public class RolePermService extends BaseService<RolePermMapper, RolePerm> imple
     @Override
     public RolePermVO selectPermissionByRoleId(String id) {
         List<String> menuIds = rolePermMapper.selectListWithRelationsByQueryAs(query().select(ROLE_PERM.PERM_ID).and(ROLE_PERM.ROLE_ID.eq(id)), String.class);
-        List<PermissionVO> permissionVOList = permissionService.listAs(query(), PermissionVO.class);
+        List<PermissionVO> permissionVOList = permissionService.listAs(query().orderBy(Permission::getModuleName).asc(), PermissionVO.class);
         return RolePermVO.builder().hasPermissions(menuIds).allPermissions(permissionVOList).build();
     }
 

+ 4 - 3
eco-start/src/main/resources/db/mysql/V1_0_0_1__sys-init-ddl.sql

@@ -167,9 +167,10 @@ VALUES ('72075869804000160', '72074963765000127', '保密部', '0mb2FRfiG5', NUL
 DROP TABLE IF EXISTS `system_permission_t`;
 CREATE TABLE `system_permission_t`
 (
-    `id`   varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci  NOT NULL COMMENT '唯一标识',
-    `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
-    `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码',
+    `id`          varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci  NOT NULL COMMENT '唯一标识',
+    `module_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模块名称',
+    `name`        varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
+    `code`        varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码',
     PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '权限点' ROW_FORMAT = DYNAMIC;