Files
anouma/collections/Users.ts
T
maro 45261a0461 Initial commit: ANOUMA website with Payload CMS, WebRTC meetings, and booking system
- Next.js 16 App Router site with the ANOUMA design system
- Payload CMS (PostgreSQL) for offers, events, posts and page content
- WebRTC video-call system with custom signaling server
- SMTP email reminders and booking-request notifications
- Customer accounts, calendar-based availability, and booking workflow
2026-08-25 16:40:51 +02:00

51 lines
1.3 KiB
TypeScript

import type { CollectionConfig } from "payload";
import { isAdmin, isAdminFieldLevel } from "@/access";
export const Users: CollectionConfig = {
slug: "users",
labels: {
singular: "Benutzer:in",
plural: "Benutzer:innen",
},
admin: {
useAsTitle: "name",
defaultColumns: ["name", "email", "role"],
description: "Zugänge für den geschützten Admin-Bereich.",
},
auth: {
// Payload shows a "create first user" screen automatically when this
// collection is empty, bypassing normal access control just for that
// one-time setup — no hardcoded default password is ever needed.
maxLoginAttempts: 5,
lockTime: 10 * 60 * 1000,
},
access: {
read: isAdmin,
create: isAdmin,
update: isAdmin,
delete: isAdmin,
},
fields: [
{
name: "name",
type: "text",
label: "Name",
required: true,
},
{
name: "role",
type: "select",
label: "Rolle",
required: true,
defaultValue: "admin",
// Only "admin" exists today; add further roles here later and extend
// the checks in access/index.ts to match.
options: [{ label: "Administrator:in", value: "admin" }],
access: {
update: isAdminFieldLevel,
},
},
// "email" and "password" are added automatically by `auth: true`-style config.
],
};