Переглянути джерело

补充新的权限类型,调整部分接口

luoshi 2 роки тому
батько
коміт
65503945a0

+ 1 - 3
src/main/java/com/qmth/ops/api/controller/admin/UserController.java

@@ -105,9 +105,7 @@ public class UserController {
             @Validated @RequestBody UserPermissionDTO userPermission) {
         adminSession.hasPermission(Permission.USER_EDIT);
         User user = userService.getById(userPermission.getUserId());
-        for (PermissionDTO dto : userPermission.getPermissions()) {
-            userPermissionService.save(user, dto.getPermission(), dto.getScope());
-        }
+        userPermissionService.save(user, userPermission.getUserPermissionList());
         return new UpdateTimeVO().set("userId", user.getId());
     }
 

+ 12 - 0
src/main/java/com/qmth/ops/api/dto/LoginResult.java

@@ -2,6 +2,8 @@ package com.qmth.ops.api.dto;
 
 import com.qmth.ops.biz.domain.Role;
 
+import java.util.List;
+
 public class LoginResult {
 
     private Long id;
@@ -16,6 +18,8 @@ public class LoginResult {
 
     private String fileServer;
 
+    private List<PermissionDTO> permissions;
+
     public Long getId() {
         return id;
     }
@@ -63,4 +67,12 @@ public class LoginResult {
     public void setFileServer(String fileServer) {
         this.fileServer = fileServer;
     }
+
+    public List<PermissionDTO> getPermissions() {
+        return permissions;
+    }
+
+    public void setPermissions(List<PermissionDTO> permissions) {
+        this.permissions = permissions;
+    }
 }

+ 8 - 0
src/main/java/com/qmth/ops/api/dto/PermissionDTO.java

@@ -40,4 +40,12 @@ public class PermissionDTO {
     public void setScope(String scope) {
         this.scope = scope;
     }
+
+    public UserPermission getUserPermission(Long userId) {
+        UserPermission up = new UserPermission();
+        up.setUserId(userId);
+        up.setPermission(permission);
+        up.setScope(scope);
+        return up;
+    }
 }

+ 6 - 0
src/main/java/com/qmth/ops/api/dto/UserPermissionDTO.java

@@ -1,11 +1,13 @@
 package com.qmth.ops.api.dto;
 
+import com.qmth.ops.biz.domain.UserPermission;
 import org.springframework.validation.annotation.Validated;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Validated
 public class UserPermissionDTO {
@@ -33,4 +35,8 @@ public class UserPermissionDTO {
     public void setPermissions(List<PermissionDTO> permissions) {
         this.permissions = permissions;
     }
+
+    public List<UserPermission> getUserPermissionList() {
+        return permissions.stream().map(p -> p.getUserPermission(userId)).collect(Collectors.toList());
+    }
 }

+ 5 - 0
src/main/java/com/qmth/ops/api/security/AdminSession.java

@@ -3,9 +3,12 @@ package com.qmth.ops.api.security;
 import com.qmth.boot.core.exception.UnauthorizedException;
 import com.qmth.boot.core.security.model.AccessEntity;
 import com.qmth.ops.api.dto.LoginResult;
+import com.qmth.ops.api.dto.PermissionDTO;
 import com.qmth.ops.biz.domain.User;
 import com.qmth.ops.biz.service.UserPermissionService;
 
+import java.util.stream.Collectors;
+
 public class AdminSession implements AccessEntity {
 
     private User user;
@@ -25,6 +28,8 @@ public class AdminSession implements AccessEntity {
         result.setSession(getIdentity());
         result.setToken(getSecret());
         result.setFileServer(fileServer);
+        result.setPermissions(
+                userPermissionService.listByUser(user).stream().map(PermissionDTO::new).collect(Collectors.toList()));
         return result;
     }
 

+ 3 - 0
src/main/java/com/qmth/ops/api/security/Permission.java

@@ -19,10 +19,13 @@ public enum Permission {
     DEPLOY_ORG_EDIT("部署绑定机构修改", ScopeType.DEPLOY),
     DEPLOY_SECRET_VIEW("部署密钥查看", ScopeType.DEPLOY),
     DEPLOY_LICENSE_DOWNLOAD("部署证书下载", ScopeType.DEPLOY),
+    ORG_VIEW("机构管理", null),
     ORG_INSERT("机构新增", null),
     ORG_EDIT("机构修改", null),
+    WXAPP_VIEW("微信小程序管理", null),
     WXAPP_INSERT("微信小程序新增", null),
     WXAPP_EDIT("微信小程序修改", null),
+    USER_VIEW("用户管理", null),
     USER_INSERT("用户新增", null),
     USER_EDIT("用户修改", null);
 

+ 0 - 5
src/main/java/com/qmth/ops/biz/dao/UserPermissionDao.java

@@ -1,13 +1,8 @@
 package com.qmth.ops.biz.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.qmth.ops.api.security.Permission;
 import com.qmth.ops.biz.domain.UserPermission;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Update;
 
 public interface UserPermissionDao extends BaseMapper<UserPermission> {
 
-    @Update("replace into user_permission (user_id, permission, scope) values (#{userId}, #{permission}, #{scope})")
-    void save(@Param("userId") Long userId, @Param("permission") Permission permission, @Param("scope") String scope);
 }

+ 9 - 3
src/main/java/com/qmth/ops/biz/service/InitService.java

@@ -13,6 +13,8 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.util.Arrays;
+import java.util.stream.Collectors;
 
 @Service
 public class InitService implements SqlProvider, CommandLineRunner {
@@ -50,9 +52,13 @@ public class InitService implements SqlProvider, CommandLineRunner {
 
         User user = userService.findByLoginName("admin");
         if (user != null && user.hasRole(Role.ADMIN)) {
-            for (Permission permission : Permission.values()) {
-                userPermissionService.save(user, permission, UserPermission.UNLIMIT_SCOPE);
-            }
+            userPermissionService.saveBatch(Arrays.stream(Permission.values()).map(p -> {
+                UserPermission up = new UserPermission();
+                up.setUserId(user.getId());
+                up.setPermission(p);
+                up.setScope(UserPermission.UNLIMIT_SCOPE);
+                return up;
+            }).collect(Collectors.toList()));
             log.info("系统管理员权限更新完成");
         }
     }

+ 3 - 2
src/main/java/com/qmth/ops/biz/service/UserPermissionService.java

@@ -39,8 +39,9 @@ public class UserPermissionService extends ServiceImpl<UserPermissionDao, UserPe
     }
 
     @Transactional
-    public void save(User user, Permission permission, String scope) {
-        userPermissionDao.save(user.getId(), permission, scope);
+    public void save(User user, List<UserPermission> list) {
+        userPermissionDao.delete(new LambdaUpdateWrapper<UserPermission>().eq(UserPermission::getUserId, user.getId()));
+        saveBatch(list);
     }
 
     @Transactional