diff --git a/.gitignore b/.gitignore index 93c7f25..18efc38 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,8 @@ next-env.d.ts /media +/postgres-data + # Playwright node_modules/ /test-results/ diff --git a/docker-compose.yml b/docker-compose.yml index 19b4de3..41bf3b6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -26,7 +26,7 @@ services: env_file: - .env volumes: - - data:/data/db + - ./postgres-data:/var/lib/postgresql/data volumes: data: diff --git a/src/app/(frontend)/page.tsx b/src/app/(frontend)/page.tsx index bebe23a..de615ae 100644 --- a/src/app/(frontend)/page.tsx +++ b/src/app/(frontend)/page.tsx @@ -32,10 +32,16 @@ export default async function HomePage() { return (
-
-

{page.title}

- {page.richText && ( - +
+ {page && ( +
+

{page.title}

+
+ {page.richText && ( + + )} +
+
)} diff --git a/src/collections/Users.ts b/src/collections/Users.ts index 2619093..52db9b4 100644 --- a/src/collections/Users.ts +++ b/src/collections/Users.ts @@ -7,14 +7,42 @@ export const Users: CollectionConfig = { return Boolean(user?.role === "superAdmin") }, update: ({ req: { user } }) => { - return Boolean(user?.role === "superAdmin" || user?.role === "admin") + if (user?.role === "superAdmin" || user?.role === "admin") { + return true + } + + if (user) { + return { + email: { + equals: user.email + } + } + } + + return false }, - delete: ({ req: { user }, data }) => { + delete: ({ req: { user } }) => { return Boolean(user?.role === "superAdmin") }, + read: ({ req: { user } }) => { + if (user?.role === "superAdmin" || user?.role === "admin") { + return true + } + + if (user) { + return { + email: { + equals: user.email + } + } + } + + return false + }, }, admin: { useAsTitle: 'email', + defaultColumns: ['email', 'name', 'role'] }, auth: true, fields: [ @@ -29,7 +57,16 @@ export const Users: CollectionConfig = { { label: 'User', value: 'user' }, ], required: true, - defaultValue: 'user' - } + defaultValue: 'user', + access: { + update: ({ req: { user } }) => { + return Boolean(user?.role === "superAdmin") + }, + } + }, + { + name: 'name', + type: 'text' + }, ], } diff --git a/src/payload-types.ts b/src/payload-types.ts index 825fbb8..90c8353 100644 --- a/src/payload-types.ts +++ b/src/payload-types.ts @@ -122,6 +122,7 @@ export interface UserAuthOperations { export interface User { id: number; role: 'superAdmin' | 'admin' | 'user'; + name?: string | null; updatedAt: string; createdAt: string; email: string; @@ -251,6 +252,7 @@ export interface PayloadMigration { */ export interface UsersSelect { role?: T; + name?: T; updatedAt?: T; createdAt?: T; email?: T;