mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
@@ -17,6 +17,7 @@ router.post(
|
||||
accountability: req.accountability,
|
||||
schema: req.schema,
|
||||
});
|
||||
|
||||
const primaryKey = await service.create(req.body);
|
||||
|
||||
try {
|
||||
|
||||
@@ -11,6 +11,7 @@ import {
|
||||
Item,
|
||||
PrimaryKey,
|
||||
SchemaOverview,
|
||||
Filter,
|
||||
} from '../types';
|
||||
import { Knex } from 'knex';
|
||||
import { ForbiddenException, FailedValidationException } from '../exceptions';
|
||||
@@ -268,7 +269,7 @@ export class AuthorizationService {
|
||||
}
|
||||
}
|
||||
|
||||
validationErrors.push(...this.validateJoi(permission.validation, payloads));
|
||||
validationErrors.push(...this.validateJoi(parseFilter(permission.validation || {}, this.accountability), payloads));
|
||||
|
||||
if (validationErrors.length > 0) throw validationErrors;
|
||||
|
||||
@@ -279,10 +280,7 @@ export class AuthorizationService {
|
||||
}
|
||||
}
|
||||
|
||||
validateJoi(
|
||||
validation: null | Record<string, any>,
|
||||
payloads: Partial<Record<string, any>>[]
|
||||
): FailedValidationException[] {
|
||||
validateJoi(validation: Filter, payloads: Partial<Record<string, any>>[]): FailedValidationException[] {
|
||||
if (!validation) return [];
|
||||
|
||||
const errors: FailedValidationException[] = [];
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { Filter } from './query';
|
||||
|
||||
export type PermissionsAction = 'create' | 'read' | 'update' | 'delete' | 'comment' | 'explain';
|
||||
|
||||
export type Permission = {
|
||||
@@ -6,7 +8,7 @@ export type Permission = {
|
||||
collection: string;
|
||||
action: PermissionsAction;
|
||||
permissions: Record<string, any>;
|
||||
validation: Record<string, any> | null;
|
||||
validation: Filter | null;
|
||||
limit: number | null;
|
||||
presets: Record<string, any> | null;
|
||||
fields: string[] | null;
|
||||
|
||||
Reference in New Issue
Block a user