mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
Fix in filter array parsing
This commit is contained in:
@@ -7,7 +7,10 @@ export function parseFilter(filter: Filter, accountability: Accountability | nul
|
||||
if (val === 'true') return true;
|
||||
if (val === 'false') return false;
|
||||
|
||||
if (key === '_in' || key === '_nin') return toArray(val);
|
||||
if (key === '_in' || key === '_nin') {
|
||||
if (typeof val === 'string' && val.includes(',')) return val.split(',');
|
||||
else return toArray(val);
|
||||
}
|
||||
|
||||
if (val === '$NOW') return new Date();
|
||||
if (val === '$CURRENT_USER') return accountability?.user || null;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Accountability, Query, Sort, Filter, Meta } from '../types';
|
||||
import logger from '../logger';
|
||||
import { parseFilter } from '../utils/parse-filter';
|
||||
import { flatten } from 'lodash';
|
||||
|
||||
export function sanitizeQuery(
|
||||
rawQuery: Record<string, any>,
|
||||
@@ -75,6 +76,9 @@ function sanitizeFields(rawFields: any) {
|
||||
if (typeof rawFields === 'string') fields = rawFields.split(',');
|
||||
else if (Array.isArray(rawFields)) fields = rawFields as string[];
|
||||
|
||||
// Case where array item includes CSV (fe fields[]=id,name):
|
||||
fields = flatten(fields.map((field) => (field.includes(',') ? field.split(',') : field)));
|
||||
|
||||
return fields;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user