@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
13 lines (12 loc) • 627 B
JavaScript
import { uniq } from 'lodash-es';
import { fetchPolicies } from '../../lib/fetch-policies.js';
import { fetchPermissions } from '../../lib/fetch-permissions.js';
export async function fetchAllowedCollections({ action, accountability }, { knex, schema }) {
if (accountability.admin) {
return Object.keys(schema.collections);
}
const policies = await fetchPolicies(accountability, { knex, schema });
const permissions = await fetchPermissions({ action, policies, accountability }, { knex, schema });
const collections = permissions.map(({ collection }) => collection);
return uniq(collections);
}