Alexandre Bodin 7346b983c5 Add domain model for permission
Signed-off-by: Alexandre Bodin <bodin.alex@gmail.com>
2020-07-08 10:59:37 +02:00

37 lines
822 B
JavaScript

'use strict';
const { yup, formatYupErrors } = require('strapi-utils');
const handleReject = error => Promise.reject(formatYupErrors(error));
const updatePermissionsSchema = yup
.object()
.shape({
permissions: yup
.array()
.of(
yup
.object()
.shape({
action: yup.string().required(),
subject: yup.string(),
fields: yup.array().of(yup.string()),
conditions: yup.array().of(yup.string()),
})
.noUnknown()
)
.requiredAllowEmpty(),
})
.required()
.noUnknown();
const validatedUpdatePermissionsInput = data => {
return updatePermissionsSchema
.validate(data, { strict: true, abortEarly: false })
.catch(handleReject);
};
module.exports = {
validatedUpdatePermissionsInput,
};