mirror of
https://github.com/directus/directus.git
synced 2026-01-29 21:28:02 -05:00
Add find-permissions method
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Accountability, Query } from '../types';
|
||||
import { Accountability, Permission, Operation, Query } from '../types';
|
||||
import * as ItemsService from './items';
|
||||
|
||||
export const createPermission = async (
|
||||
@@ -32,3 +32,27 @@ export const updatePermission = async (
|
||||
export const deletePermission = async (pk: number, accountability: Accountability) => {
|
||||
await ItemsService.deleteItem('directus_permissions', pk, accountability);
|
||||
};
|
||||
|
||||
export const authorize = async (operation: Operation, collection: string, role?: string) => {
|
||||
const query: Query = {
|
||||
filter: {
|
||||
collection: {
|
||||
_eq: collection,
|
||||
},
|
||||
operation: {
|
||||
_eq: operation,
|
||||
},
|
||||
},
|
||||
limit: 1,
|
||||
};
|
||||
|
||||
if (role) {
|
||||
query.filter.role = {
|
||||
_eq: role,
|
||||
};
|
||||
}
|
||||
|
||||
const records = await ItemsService.readItems<Permission>('directus_permissions', query);
|
||||
|
||||
return records[0];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user