generated from autonomic-cooperative/astro-payload-template
42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
import { CollectionConfig } from 'payload/types';
|
|
import { isAdmin, isAdminFieldLevel } from '../access/isAdmin';
|
|
import { isAdminOrSelf } from '../access/isAdminOrSelf';
|
|
|
|
const Users: CollectionConfig = {
|
|
slug: 'users',
|
|
auth: true,
|
|
admin: {
|
|
defaultColumns: ["roles", "email"],
|
|
useAsTitle: 'email',
|
|
},
|
|
access: {
|
|
create: isAdmin,
|
|
read: isAdminOrSelf,
|
|
update: isAdminOrSelf,
|
|
delete: isAdmin,
|
|
},
|
|
fields: [
|
|
{
|
|
name: 'roles',
|
|
type: 'select',
|
|
options: [
|
|
{ label: 'ssg', value: 'ssg' }, //cRud
|
|
{ label: 'Admin', value: 'admin' }, //CRUD, role creation
|
|
{ label: 'Editor', value: 'editor' }, //CRUD
|
|
{ label: 'User', value: 'user' }, //cRud, CRUD own entries
|
|
],
|
|
required: true,
|
|
defaultValue: "user",
|
|
// JWT so that role is accessible from 'req.user'
|
|
saveToJWT: true,
|
|
hasMany: true,
|
|
access: {
|
|
create: isAdminFieldLevel,
|
|
read: () => true,
|
|
update: isAdminFieldLevel,
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|
|
export default Users; |