Răsfoiți Sursa

调整接口权限,增加配置项敏感信息过滤

luoshi 2 ani în urmă
părinte
comite
6c02e48a10

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

@@ -47,14 +47,14 @@ public class AppController {
 
     @PostMapping("/insert")
     public AppDTO insert(@RequestAttribute AdminSession accessEntity, App app) {
-        accessEntity.validateRole(Role.ADMIN);
+        accessEntity.validateRole(Role.ADMIN, Role.OPS);
         appService.insert(app);
         return appService.findDTO(app.getId());
     }
 
     @PostMapping("/update")
     public AppDTO update(@RequestAttribute AdminSession accessEntity, App app) {
-        accessEntity.validateRole(Role.ADMIN);
+        accessEntity.validateRole(Role.ADMIN, Role.OPS);
         appService.update(app);
         return appService.findDTO(app.getId());
     }
@@ -62,7 +62,7 @@ public class AppController {
     @PostMapping("/master_version")
     public AppDTO updateMasterVersion(@RequestAttribute AdminSession accessEntity, @RequestParam Long id,
             @RequestParam Long versionId) {
-        accessEntity.validateRole(Role.ADMIN);
+        accessEntity.validateRole(Role.ADMIN, Role.OPS);
         appService.setMasterVersion(appService.getById(id), versionService.getById(versionId));
         return appService.findDTO(id);
     }

+ 11 - 2
src/main/java/com/qmth/ops/api/controller/admin/ConfigController.java

@@ -87,8 +87,17 @@ public class ConfigController {
     public List<ConfigItem> listConfigItem(@RequestAttribute AdminSession accessEntity, @RequestParam Long appId,
             @RequestParam Long versionId, @RequestParam Long moduleId, @RequestParam Long envId) {
         accessEntity.validateApp(appService.getById(appId));
-        accessEntity.validateEnv(envService.getById(envId).getType());
-        return configService.listConfigItem(appId, versionId, moduleId, envId);
+        Env env = envService.getById(envId);
+        List<ConfigItem> list = configService.listConfigItem(appId, versionId, moduleId, env.getId());
+        //非环境可编辑用户,需要隐藏机密信息
+        if (!accessEntity.getUser().hasRole(env.getType().getRole())) {
+            for (ConfigItem item : list) {
+                if (item.getKey().contains("secret") || item.getKey().contains("password")) {
+                    item.setValue("***");
+                }
+            }
+        }
+        return list;
     }
 
     @PostMapping("/item/update")

+ 2 - 2
src/main/java/com/qmth/ops/api/controller/admin/EnvController.java

@@ -37,13 +37,13 @@ public class EnvController {
 
     @PostMapping("/insert")
     public Env insert(@RequestAttribute AdminSession accessEntity, Env env) {
-        accessEntity.validateRole(Role.ADMIN);
+        accessEntity.validateRole(Role.ADMIN, Role.OPS);
         return envService.insert(env);
     }
 
     @PostMapping("/update")
     public Env update(@RequestAttribute AdminSession accessEntity, Env env) {
-        accessEntity.validateRole(Role.ADMIN);
+        accessEntity.validateRole(Role.ADMIN, Role.OPS);
         return envService.update(env);
     }
 

+ 2 - 2
src/main/java/com/qmth/ops/api/controller/admin/ModuleController.java

@@ -27,13 +27,13 @@ public class ModuleController {
 
     @PostMapping("/insert")
     public Module insert(@RequestAttribute AdminSession accessEntity, Module module) {
-        accessEntity.validateRole(Role.ADMIN);
+        accessEntity.validateRole(Role.ADMIN, Role.DEV);
         return moduleService.insert(module);
     }
 
     @PostMapping("/update")
     public Module update(@RequestAttribute AdminSession accessEntity, Module module) {
-        accessEntity.validateRole(Role.ADMIN);
+        accessEntity.validateRole(Role.ADMIN, Role.DEV);
         return moduleService.update(module);
     }
 

+ 4 - 3
src/main/java/com/qmth/ops/api/controller/admin/VersionController.java

@@ -1,5 +1,6 @@
 package com.qmth.ops.api.controller.admin;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.ops.api.binder.VersionNumberBinder;
 import com.qmth.ops.api.constants.OpsApiConstants;
 import com.qmth.ops.api.security.AdminSession;
@@ -32,20 +33,20 @@ public class VersionController {
     @PostMapping("/insert")
     public Version insert(@RequestAttribute AdminSession accessEntity, @RequestParam Long appId,
             @RequestParam VersionNumber name) {
-        accessEntity.validateRole(Role.DEV);
+        accessEntity.validateRole(Role.ADMIN, Role.DEV);
         accessEntity.validateApp(appService.getById(appId));
         return versionService.insert(appService.getById(appId), name);
     }
 
     @PostMapping("/update")
     public Version list(@RequestAttribute AdminSession accessEntity, Version version) {
-        accessEntity.validateRole(Role.DEV);
+        accessEntity.validateRole(Role.ADMIN, Role.DEV);
         accessEntity.validateApp(appService.getById(versionService.getById(version.getId()).getAppId()));
         return versionService.update(version);
     }
 
     @PostMapping("/query")
-    public VersionQuery list(VersionQuery query) {
+    public IPage<Version> query(VersionQuery query) {
         return versionService.query(query);
     }
 

+ 1 - 1
src/main/java/com/qmth/ops/biz/domain/EnvType.java

@@ -2,7 +2,7 @@ package com.qmth.ops.biz.domain;
 
 public enum EnvType {
 
-    TEST("测试环境", Role.TEST, Role.OPS, Role.ADMIN), PROD("生产环境", Role.OPS, Role.ADMIN);
+    TEST("测试环境", Role.TEST, Role.OPS), PROD("生产环境", Role.OPS);
 
     private String name;
 

+ 2 - 1
src/main/java/com/qmth/ops/biz/service/VersionService.java

@@ -2,6 +2,7 @@ package com.qmth.ops.biz.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.ops.biz.dao.VersionDao;
 import com.qmth.ops.biz.domain.App;
@@ -43,7 +44,7 @@ public class VersionService extends ServiceImpl<VersionDao, Version> {
         return versionDao.selectById(version.getId());
     }
 
-    public VersionQuery query(@NotNull VersionQuery query) {
+    public IPage<Version> query(@NotNull VersionQuery query) {
         return versionDao.selectPage(query, query.build());
     }