mirror of
https://github.com/directus/directus.git
synced 2026-01-29 18:08:04 -05:00
Use revisions for permissions
This commit is contained in:
@@ -3,7 +3,6 @@ import asyncHandler from 'express-async-handler';
|
||||
import sanitizeQuery from '../middleware/sanitize-query';
|
||||
import validateQuery from '../middleware/validate-query';
|
||||
import * as PermissionsService from '../services/permissions';
|
||||
import * as ActivityService from '../services/activity';
|
||||
import useCollection from '../middleware/use-collection';
|
||||
|
||||
const router = express.Router();
|
||||
@@ -12,17 +11,14 @@ router.post(
|
||||
'/',
|
||||
useCollection('directus_permissions'),
|
||||
asyncHandler(async (req, res) => {
|
||||
const item = await PermissionsService.createPermission(req.body, req.sanitizedQuery);
|
||||
|
||||
ActivityService.createActivity({
|
||||
action: ActivityService.Action.CREATE,
|
||||
collection: req.collection,
|
||||
item: item.id,
|
||||
const primaryKey = await PermissionsService.createPermission(req.body, {
|
||||
ip: req.ip,
|
||||
user_agent: req.get('user-agent'),
|
||||
action_by: req.user,
|
||||
userAgent: req.get('user-agent'),
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
const item = await PermissionsService.readPermission(primaryKey, req.sanitizedQuery);
|
||||
|
||||
return res.json({ data: item });
|
||||
})
|
||||
);
|
||||
@@ -44,7 +40,10 @@ router.get(
|
||||
sanitizeQuery,
|
||||
validateQuery,
|
||||
asyncHandler(async (req, res) => {
|
||||
const record = await PermissionsService.readPermission(req.params.pk, req.sanitizedQuery);
|
||||
const record = await PermissionsService.readPermission(
|
||||
Number(req.params.pk),
|
||||
req.sanitizedQuery
|
||||
);
|
||||
return res.json({ data: record });
|
||||
})
|
||||
);
|
||||
@@ -53,20 +52,17 @@ router.patch(
|
||||
'/:pk',
|
||||
useCollection('directus_permissions'),
|
||||
asyncHandler(async (req, res) => {
|
||||
const item = await PermissionsService.updatePermission(
|
||||
req.params.pk,
|
||||
const primaryKey = await PermissionsService.updatePermission(
|
||||
Number(req.params.pk),
|
||||
req.body,
|
||||
req.sanitizedQuery
|
||||
{
|
||||
ip: req.ip,
|
||||
userAgent: req.get('user-agent'),
|
||||
user: req.user,
|
||||
}
|
||||
);
|
||||
|
||||
ActivityService.createActivity({
|
||||
action: ActivityService.Action.UPDATE,
|
||||
collection: req.collection,
|
||||
item: item.id,
|
||||
ip: req.ip,
|
||||
user_agent: req.get('user-agent'),
|
||||
action_by: req.user,
|
||||
});
|
||||
const item = await PermissionsService.readPermission(primaryKey, req.sanitizedQuery);
|
||||
|
||||
return res.json({ data: item });
|
||||
})
|
||||
@@ -76,15 +72,10 @@ router.delete(
|
||||
'/:pk',
|
||||
useCollection('directus_permissions'),
|
||||
asyncHandler(async (req, res) => {
|
||||
await PermissionsService.deletePermission(req.params.pk);
|
||||
|
||||
ActivityService.createActivity({
|
||||
action: ActivityService.Action.DELETE,
|
||||
collection: req.collection,
|
||||
item: req.params.pk,
|
||||
await PermissionsService.deletePermission(Number(req.params.pk), {
|
||||
ip: req.ip,
|
||||
user_agent: req.get('user-agent'),
|
||||
action_by: req.user,
|
||||
userAgent: req.get('user-agent'),
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
return res.status(200).end();
|
||||
|
||||
@@ -42,7 +42,7 @@ export const createItem = async (
|
||||
collection: string,
|
||||
data: Record<string, any>,
|
||||
accountability?: Accountability
|
||||
) => {
|
||||
): Promise<string | number> => {
|
||||
let payload = await PayloadService.processValues('create', collection, data);
|
||||
|
||||
payload = await PayloadService.processM2O(collection, payload);
|
||||
@@ -118,7 +118,7 @@ export const updateItem = async (
|
||||
pk: number | string,
|
||||
data: Record<string, any>,
|
||||
accountability?: Accountability
|
||||
) => {
|
||||
): Promise<string | number> => {
|
||||
let payload = await PayloadService.processValues('update', collection, data);
|
||||
|
||||
payload = await PayloadService.processM2O(collection, payload);
|
||||
|
||||
@@ -1,28 +1,34 @@
|
||||
import { Query } from '../types/query';
|
||||
import { Accountability, Query } from '../types';
|
||||
import * as ItemsService from './items';
|
||||
|
||||
export const createPermission = async (data: Record<string, any>, query: Query) => {
|
||||
const primaryKey = await ItemsService.createItem('directus_permissions', data);
|
||||
return await ItemsService.readItem('directus_permissions', primaryKey, query);
|
||||
export const createPermission = async (
|
||||
data: Record<string, any>,
|
||||
accountability: Accountability
|
||||
): Promise<number> => {
|
||||
return (await ItemsService.createItem('directus_permissions', data, accountability)) as number;
|
||||
};
|
||||
|
||||
export const readPermissions = async (query: Query) => {
|
||||
return await ItemsService.readItems('directus_permissions', query);
|
||||
};
|
||||
|
||||
export const readPermission = async (pk: string | number, query: Query) => {
|
||||
export const readPermission = async (pk: number, query: Query) => {
|
||||
return await ItemsService.readItem('directus_permissions', pk, query);
|
||||
};
|
||||
|
||||
export const updatePermission = async (
|
||||
pk: string | number,
|
||||
pk: number,
|
||||
data: Record<string, any>,
|
||||
query: Query
|
||||
) => {
|
||||
const primaryKey = await ItemsService.updateItem('directus_permissions', pk, data);
|
||||
return await ItemsService.readItem('directus_permissions', primaryKey, query);
|
||||
accountability: Accountability
|
||||
): Promise<number> => {
|
||||
return (await ItemsService.updateItem(
|
||||
'directus_permissions',
|
||||
pk,
|
||||
data,
|
||||
accountability
|
||||
)) as number;
|
||||
};
|
||||
|
||||
export const deletePermission = async (pk: string | number) => {
|
||||
await ItemsService.deleteItem('directus_permissions', pk);
|
||||
export const deletePermission = async (pk: number, accountability: Accountability) => {
|
||||
await ItemsService.deleteItem('directus_permissions', pk, accountability);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user