Files
directus/api/tests/__test-utils__/items-utils.ts
ian 72180f7027 Add query filter validation with permissions (#12190)
* Add query filter validation with permissions

* Allow all fields in test

* Revert test and add check for permissions with empty fields

* Add check for deep filters

* Add tests

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-03-21 18:19:37 +00:00

35 lines
1.0 KiB
TypeScript

// dynamically adds fields to the sql strings as the schema grows
export const sqlFieldFormatter = (schema: Record<string, any>, table: string) => {
const fields = [];
// Exclude alias fields, unable to selected in DB
for (const field of Object.keys(schema.collections[table].fields)) {
if (schema.collections[table].fields[field].type !== 'alias') {
fields.push(field);
}
}
let sql = '';
for (const field of fields.slice(0, fields.length - 1)) {
sql += `"${table}"."${field}", `;
}
sql += `"${table}"."${fields[fields.length - 1]}"`;
return sql;
};
export const sqlFieldList = (schema: Record<string, any>, table: string) => {
const fields = [];
// Exclude alias fields, unable to selected in DB
for (const field of Object.keys(schema.collections[table].fields)) {
if (schema.collections[table].fields[field].type !== 'alias') {
fields.push(field);
}
}
let sql = '';
for (const field of fields.slice(0, fields.length - 1)) {
sql += `"${field}", `;
}
sql += `"${fields[fields.length - 1]}"`;
return sql;
};