1
0
Fork 0
polaris-task-force/src/collections/intelligence/Campaigns.ts
Z8MB1E 653caa8064 feat(rbac): migrate collection access controls to RBAC permissions
Replace legacy isDeveloper/isAdmin/hasRoles checks with
hasPermission/requirePermission across all collections. Add roleDocs
relationship to Users, enlistmentDate to Profiles, and field-level
intel_excerpt permission gate on Profiles. Auto-generated payload-types
updated to reflect the new Roles collection and roleDocs field.
2026-08-19 19:47:51 -04:00

71 lines
1.5 KiB
TypeScript

import { CollectionConfig } from "payload";
import { requirePermission } from "@/utils/access-control/hasPermission";
export const Campaigns: CollectionConfig = {
slug: "campaigns",
admin: {
group: "Intelligence",
useAsTitle: "name",
},
access: {
create: requirePermission("campaigns:create"),
update: requirePermission("campaigns:update"),
delete: requirePermission("campaigns:delete"),
read: ({ req }) => !!req.user,
},
fields: [
{
name: "name",
type: "text",
required: true,
unique: true,
},
{
name: "summary",
type: "textarea",
required: true,
defaultValue: "An Arma 3 campaign.",
},
{
name: "status",
type: "select",
options: [
{
label: "Concept",
value: "concept",
},
{
label: "In Progress",
value: "inProgress",
},
{
label: "Completed",
value: "completed",
},
],
required: true,
defaultValue: "concept",
},
{
name: "description",
type: "richText",
},
{
name: "startDate",
type: "date",
},
{
name: "endDate",
type: "date",
},
{
name: "coverImage",
type: "upload",
relationTo: "media",
admin: {
description:
"Background image for the campaign selector card on the campaigns page. Renders translucent with hover effects. Recommended aspect ratio: 16:9 or square.",
},
},
],
};