Files
payload/demo/collections/Admin.js
2020-08-22 00:08:46 -04:00

63 lines
1.2 KiB
JavaScript

const roles = require('../access/roles');
const checkRole = require('../access/checkRole');
const access = ({ req: { user } }) => {
const result = checkRole(['admin'], user);
return result;
};
module.exports = {
slug: 'admins',
labels: {
singular: 'Admin',
plural: 'Admins',
},
access: {
create: access,
read: access,
update: access,
delete: access,
admin: () => true,
},
auth: {
tokenExpiration: 7200,
useAPIKey: true,
secureCookie: process.env.NODE_ENV === 'production',
sameSite: false, // 'strict', 'lax', 'none', true (strict)
},
fields: [
{
name: 'roles',
label: 'Role',
type: 'select',
options: roles,
defaultValue: 'user',
required: true,
saveToJWT: true,
hasMany: true,
},
{
name: 'apiKey',
access: {
read: ({ req: { user } }) => {
if (checkRole(['admin'], user)) {
return true;
}
if (user) {
return {
email: user.email,
};
}
return false;
},
},
},
],
timestamps: true,
admin: {
useAsTitle: 'email',
},
};