fix(core): Ensure ID is a positive integer when fetching execution (#9629)

This commit is contained in:
Iván Ovejero
2024-06-05 13:05:07 +02:00
committed by GitHub
parent f94090b48c
commit 411ffbda7f
3 changed files with 17 additions and 0 deletions

View File

@@ -8,6 +8,8 @@ import { NotFoundError } from '@/errors/response-errors/not-found.error';
import { parseRangeQuery } from './parse-range-query.middleware';
import type { User } from '@/databases/entities/User';
import type { Scope } from '@n8n/permissions';
import { isPositiveInteger } from '@/utils';
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
@RestController('/executions')
export class ExecutionsController {
@@ -59,6 +61,10 @@ export class ExecutionsController {
@Get('/:id')
async getOne(req: ExecutionRequest.GetOne) {
if (!isPositiveInteger(req.params.id)) {
throw new BadRequestError('Execution ID is not a number');
}
const workflowIds = await this.getAccessibleWorkflowIds(req.user, 'workflow:read');
if (workflowIds.length === 0) throw new NotFoundError('Execution not found');