fix(测试跟踪): 用例评审脑图权限校验
--bug=1018748 --user=陈建星 【系统设置】测试跟踪只有查看权限,但进入用例评审详情后切换脑图修改内容可以保存 https://www.tapd.cn/55049933/s/1274991
This commit is contained in:
parent
b90a980f85
commit
fb67225bf7
|
@ -5,6 +5,7 @@ import com.github.pagehelper.PageHelper;
|
||||||
import io.metersphere.base.domain.TestCaseReviewTestCase;
|
import io.metersphere.base.domain.TestCaseReviewTestCase;
|
||||||
import io.metersphere.commons.constants.OperLogConstants;
|
import io.metersphere.commons.constants.OperLogConstants;
|
||||||
import io.metersphere.commons.constants.OperLogModule;
|
import io.metersphere.commons.constants.OperLogModule;
|
||||||
|
import io.metersphere.commons.constants.PermissionConstants;
|
||||||
import io.metersphere.commons.utils.PageUtils;
|
import io.metersphere.commons.utils.PageUtils;
|
||||||
import io.metersphere.commons.utils.Pager;
|
import io.metersphere.commons.utils.Pager;
|
||||||
import io.metersphere.log.annotation.MsAuditLog;
|
import io.metersphere.log.annotation.MsAuditLog;
|
||||||
|
@ -15,6 +16,7 @@ import io.metersphere.request.testreview.DeleteRelevanceRequest;
|
||||||
import io.metersphere.request.testreview.QueryCaseReviewRequest;
|
import io.metersphere.request.testreview.QueryCaseReviewRequest;
|
||||||
import io.metersphere.request.testreview.TestCaseReviewTestCaseEditRequest;
|
import io.metersphere.request.testreview.TestCaseReviewTestCaseEditRequest;
|
||||||
import io.metersphere.service.TestReviewTestCaseService;
|
import io.metersphere.service.TestReviewTestCaseService;
|
||||||
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
@ -34,24 +36,28 @@ public class TestReviewTestCaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/delete")
|
@PostMapping("/delete")
|
||||||
|
@RequiresPermissions(PermissionConstants.PROJECT_TRACK_REVIEW_READ_DELETE)
|
||||||
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE_REVIEW, type = OperLogConstants.UN_ASSOCIATE_CASE, beforeEvent = "#msClass.getLogDetails(#request)", msClass = TestReviewTestCaseService.class)
|
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE_REVIEW, type = OperLogConstants.UN_ASSOCIATE_CASE, beforeEvent = "#msClass.getLogDetails(#request)", msClass = TestReviewTestCaseService.class)
|
||||||
public int deleteTestCase(@RequestBody DeleteRelevanceRequest request) {
|
public int deleteTestCase(@RequestBody DeleteRelevanceRequest request) {
|
||||||
return testReviewTestCaseService.deleteTestCase(request);
|
return testReviewTestCaseService.deleteTestCase(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/batch/delete")
|
@PostMapping("/batch/delete")
|
||||||
|
@RequiresPermissions(PermissionConstants.PROJECT_TRACK_REVIEW_READ_DELETE)
|
||||||
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE_REVIEW, type = OperLogConstants.UN_ASSOCIATE_CASE, beforeEvent = "#msClass.getLogDetails(#request)", msClass = TestReviewTestCaseService.class)
|
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE_REVIEW, type = OperLogConstants.UN_ASSOCIATE_CASE, beforeEvent = "#msClass.getLogDetails(#request)", msClass = TestReviewTestCaseService.class)
|
||||||
public void deleteTestCaseBatch(@RequestBody TestReviewCaseBatchRequest request) {
|
public void deleteTestCaseBatch(@RequestBody TestReviewCaseBatchRequest request) {
|
||||||
testReviewTestCaseService.deleteTestCaseBatch(request);
|
testReviewTestCaseService.deleteTestCaseBatch(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/batch/edit/status")
|
@PostMapping("/batch/edit/status")
|
||||||
|
@RequiresPermissions(PermissionConstants.PROJECT_TRACK_REVIEW_READ_EDIT)
|
||||||
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE_REVIEW, type = OperLogConstants.BATCH_UPDATE, beforeEvent = "#msClass.batchLogDetails(#request)", content = "#msClass.getLogDetails(#request)", msClass = TestReviewTestCaseService.class)
|
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE_REVIEW, type = OperLogConstants.BATCH_UPDATE, beforeEvent = "#msClass.batchLogDetails(#request)", content = "#msClass.getLogDetails(#request)", msClass = TestReviewTestCaseService.class)
|
||||||
public void editTestCaseBatch(@RequestBody TestReviewCaseBatchRequest request) {
|
public void editTestCaseBatch(@RequestBody TestReviewCaseBatchRequest request) {
|
||||||
testReviewTestCaseService.editTestCaseBatchStatus(request);
|
testReviewTestCaseService.editTestCaseBatchStatus(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/minder/edit/{reviewId}")
|
@PostMapping("/minder/edit/{reviewId}")
|
||||||
|
@RequiresPermissions(PermissionConstants.PROJECT_TRACK_REVIEW_READ_EDIT)
|
||||||
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE_REVIEW, type = OperLogConstants.ASSOCIATE_CASE, content = "#msClass.getLogDetails(#testCases)", msClass = TestReviewTestCaseService.class)
|
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE_REVIEW, type = OperLogConstants.ASSOCIATE_CASE, content = "#msClass.getLogDetails(#testCases)", msClass = TestReviewTestCaseService.class)
|
||||||
public void editTestCaseForMinder(@PathVariable("reviewId") String reviewId, @RequestBody List<TestCaseReviewTestCase> testCases) {
|
public void editTestCaseForMinder(@PathVariable("reviewId") String reviewId, @RequestBody List<TestCaseReviewTestCase> testCases) {
|
||||||
testReviewTestCaseService.editTestCaseForMinder(reviewId, testCases);
|
testReviewTestCaseService.editTestCaseForMinder(reviewId, testCases);
|
||||||
|
@ -69,6 +75,7 @@ public class TestReviewTestCaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/edit")
|
@PostMapping("/edit")
|
||||||
|
@RequiresPermissions(PermissionConstants.PROJECT_TRACK_REVIEW_READ_EDIT)
|
||||||
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE_REVIEW, type = OperLogConstants.REVIEW, content = "#msClass.getLogDetails(#testCaseReviewTestCase)", msClass = TestReviewTestCaseService.class)
|
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE_REVIEW, type = OperLogConstants.REVIEW, content = "#msClass.getLogDetails(#testCaseReviewTestCase)", msClass = TestReviewTestCaseService.class)
|
||||||
public void editTestCase(@RequestBody TestCaseReviewTestCaseEditRequest testCaseReviewTestCase) {
|
public void editTestCase(@RequestBody TestCaseReviewTestCaseEditRequest testCaseReviewTestCase) {
|
||||||
testReviewTestCaseService.editTestCase(testCaseReviewTestCase);
|
testReviewTestCaseService.editTestCase(testCaseReviewTestCase);
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<ms-module-minder
|
<ms-module-minder
|
||||||
v-loading="result.loading"
|
v-loading="result.loading"
|
||||||
|
minder-key="REVIEW_CASE"
|
||||||
:tree-nodes="treeNodes"
|
:tree-nodes="treeNodes"
|
||||||
:data-map="dataMap"
|
:data-map="dataMap"
|
||||||
:tags="tags"
|
:tags="tags"
|
||||||
:tag-enable="true"
|
:tag-enable="true"
|
||||||
minder-key="REVIEW_CASE"
|
:disabled="disable"
|
||||||
:select-node="selectNode"
|
:select-node="selectNode"
|
||||||
:distinct-tags="[...tags, $t('test_track.plan.plan_status_prepare')]"
|
:distinct-tags="[...tags, $t('test_track.plan.plan_status_prepare')]"
|
||||||
:ignore-num="true"
|
:ignore-num="true"
|
||||||
|
@ -29,6 +30,7 @@ import MsModuleMinder from "@/business/common/minder/MsModuleMinder";
|
||||||
import {useStore} from "@/store";
|
import {useStore} from "@/store";
|
||||||
import {mapState} from "pinia";
|
import {mapState} from "pinia";
|
||||||
import {testReviewCaseMinderEdit} from "@/api/remote/plan/test-review-case";
|
import {testReviewCaseMinderEdit} from "@/api/remote/plan/test-review-case";
|
||||||
|
import {hasPermission} from "@/business/utils/sdk-utils";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TestReviewMinder",
|
name: "TestReviewMinder",
|
||||||
|
@ -78,6 +80,9 @@ export default {
|
||||||
selectNodeIds: 'testReviewSelectNodeIds',
|
selectNodeIds: 'testReviewSelectNodeIds',
|
||||||
selectNode: 'testReviewSelectNode'
|
selectNode: 'testReviewSelectNode'
|
||||||
}),
|
}),
|
||||||
|
disable() {
|
||||||
|
return !hasPermission('PROJECT_TRACK_REVIEW:READ+EDIT');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleAfterMount() {
|
handleAfterMount() {
|
||||||
|
|
Loading…
Reference in New Issue