From 40f0159f891e25e4c525751b884045dbf9e9fc9b Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Tue, 18 Feb 2020 16:27:25 +0800 Subject: [PATCH] workspace check owner --- .../metersphere/controller/WorkspaceController.java | 12 ++++++++++-- .../io/metersphere/service/WorkspaceService.java | 5 +++++ .../performance/components/settings/Workspace.vue | 8 ++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/io/metersphere/controller/WorkspaceController.java b/backend/src/main/java/io/metersphere/controller/WorkspaceController.java index c43cffb32..52efa2cff 100644 --- a/backend/src/main/java/io/metersphere/controller/WorkspaceController.java +++ b/backend/src/main/java/io/metersphere/controller/WorkspaceController.java @@ -19,15 +19,23 @@ public class WorkspaceController { @Resource private WorkspaceService workspaceService; - @PostMapping("save") + @PostMapping("add") @RequiresRoles(RoleConstants.ORG_ADMIN) - public Workspace saveWorkspace(@RequestBody Workspace workspace) { + public Workspace addWorkspace(@RequestBody Workspace workspace) { + return workspaceService.saveWorkspace(workspace); + } + + @PostMapping("update") + @RequiresRoles(RoleConstants.ORG_ADMIN) + public Workspace updateWorkspace(@RequestBody Workspace workspace) { + workspaceService.checkOwner(workspace.getId()); return workspaceService.saveWorkspace(workspace); } @GetMapping("delete/{workspaceId}") @RequiresRoles(RoleConstants.ORG_ADMIN) public void saveWorkspace(@PathVariable String workspaceId) { + workspaceService.checkOwner(workspaceId); workspaceService.deleteWorkspace(workspaceId); } diff --git a/backend/src/main/java/io/metersphere/service/WorkspaceService.java b/backend/src/main/java/io/metersphere/service/WorkspaceService.java index 98bbf6e03..eab372637 100644 --- a/backend/src/main/java/io/metersphere/service/WorkspaceService.java +++ b/backend/src/main/java/io/metersphere/service/WorkspaceService.java @@ -45,4 +45,9 @@ public class WorkspaceService { public void deleteWorkspace(String workspaceId) { workspaceMapper.deleteByPrimaryKey(workspaceId); } + + public void checkOwner(String workspaceId) { + // TODO 验证当前用户是否拥有当前此空间权限 + } + } diff --git a/frontend/src/performance/components/settings/Workspace.vue b/frontend/src/performance/components/settings/Workspace.vue index 70becce73..024fd8ca7 100644 --- a/frontend/src/performance/components/settings/Workspace.vue +++ b/frontend/src/performance/components/settings/Workspace.vue @@ -77,12 +77,16 @@ this.$refs[formName].validate((valid) => { if (valid) { this.loading = true; - this.$post("/workspace/save", this.form, () => { + let saveType = 'add'; + if (this.form.id) { + saveType = 'update' + } + this.$post("/workspace/" + saveType, this.form, () => { this.createVisible = false; this.loading = false; this.list(); Message.success('保存成功'); - }) + }); } else { return false; } -- GitLab