Files
astro-payload-test/payload/src/collections/Users.ts
2024-05-21 11:17:51 +02:00

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;