feat(audit): 收口领域写接口权限审计

This commit is contained in:
2026-07-08 16:29:22 +08:00
parent 73e8dfa8c8
commit 18380edda8
24 changed files with 638 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common';
import { ProtectedMutation } from '../../common/audit/protected-mutation.decorator';
import { CreateTestCaseDto } from './dto/create-test-case.dto';
import { UpdateTestCaseDto } from './dto/update-test-case.dto';
import { TestCaseService } from './test-case.service';
@@ -8,11 +9,21 @@ export class TestCaseController {
constructor(private readonly testCaseService: TestCaseService) {}
@Post()
@ProtectedMutation('version.testcase:manage', { versionIdParam: 'versionId' }, {
action: 'test_case.create',
entityType: 'test_case',
versionIdParam: 'versionId',
})
create(@Param('versionId') versionId: string, @Body() dto: CreateTestCaseDto) {
return this.testCaseService.create(versionId, dto);
}
@Post('batch')
@ProtectedMutation('version.testcase:manage', { versionIdParam: 'versionId' }, {
action: 'test_case.batch_create',
entityType: 'test_case',
versionIdParam: 'versionId',
})
createMany(@Param('versionId') versionId: string, @Body('items') items: CreateTestCaseDto[]) {
return this.testCaseService.createMany(versionId, items ?? []);
}
@@ -23,11 +34,23 @@ export class TestCaseController {
}
@Patch(':id')
@ProtectedMutation('version.testcase:manage', { versionIdParam: 'versionId' }, {
action: 'test_case.update',
entityType: 'test_case',
entityIdParam: 'id',
versionIdParam: 'versionId',
})
update(@Param('versionId') versionId: string, @Param('id') id: string, @Body() dto: UpdateTestCaseDto) {
return this.testCaseService.update(versionId, id, dto);
}
@Patch(':id/status')
@ProtectedMutation('version.testcase:manage', { versionIdParam: 'versionId' }, {
action: 'test_case.status',
entityType: 'test_case',
entityIdParam: 'id',
versionIdParam: 'versionId',
})
updateStatus(
@Param('versionId') versionId: string,
@Param('id') id: string,
@@ -37,6 +60,12 @@ export class TestCaseController {
}
@Delete(':id')
@ProtectedMutation('version.testcase:manage', { versionIdParam: 'versionId' }, {
action: 'test_case.delete',
entityType: 'test_case',
entityIdParam: 'id',
versionIdParam: 'versionId',
})
remove(@Param('versionId') versionId: string, @Param('id') id: string) {
return this.testCaseService.remove(versionId, id);
}