1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
import type { CollectionConfig } from "payload";
export const Users: CollectionConfig = {
slug: "users",
admin: {
useAsTitle: "email",
},
auth: true,
access: {
read: ({ req: { user } }) => !!user,
create: ({ req: { user } }) => user?.role === "admin",
update: ({ req: { user }, id }) =>
user?.role === "admin" || user?.id === id,
delete: ({ req: { user } }) => user?.role === "admin",
},
fields: [
{
name: "role",
type: "select",
required: true,
defaultValue: "viewer",
options: [
{ label: "Admin", value: "admin" },
{ label: "Editor", value: "editor" },
{ label: "Viewer", value: "viewer" },
],
access: {
update: ({ req: { user } }) => user?.role === "admin",
},
},
{
name: "firstName",
type: "text",
},
{
name: "lastName",
type: "text",
},
],
};
|