1
0
Fork 0

fix(missions): enforce access control on missions pages

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
Jason Fraley 2026-09-10 16:13:51 -04:00
parent 8654eb40fa
commit 486fdca2a0
3 changed files with 18 additions and 5 deletions

View file

@ -70,11 +70,18 @@ export default async function MissionDetailPage({ params }: MissionDetailPagePro
const { id } = await params;
const payload = await getPayload({ config });
const { user: currentUser } = await payload.auth({
headers: await nextHeaders(),
canSetHeaders: false,
});
const mission = await payload
.findByID({
collection: "missions",
id: Number(id),
depth: 2,
user: currentUser,
overrideAccess: false,
})
.catch(() => null);
@ -127,6 +134,8 @@ export default async function MissionDetailPage({ params }: MissionDetailPagePro
sort: "-classification.startDateTime",
limit: 5,
depth: 0,
user: currentUser,
overrideAccess: false,
select: {
name: true,
codeName: true,
@ -139,11 +148,6 @@ export default async function MissionDetailPage({ params }: MissionDetailPagePro
const siblingMissions = siblingMissionsRes.docs;
const { user: currentUser } = await payload.auth({
headers: await nextHeaders(),
canSetHeaders: false,
});
const canManage = currentUser
? await hasPermission(payload, currentUser, "missions:update")
: false;

View file

@ -62,6 +62,8 @@ export default async function FridayCalendarPage() {
sort: "classification.startDateTime",
depth: 1,
limit: 200,
user,
overrideAccess: false,
select: {
name: true,
codeName: true,

View file

@ -1,5 +1,6 @@
import config from "@payload-config";
import { getPayload } from "payload";
import { headers as nextHeaders } from "next/headers";
import type { Campaign, Mission } from "@/payload-types";
import { CrosshairIcon } from "lucide-react";
import { MissionsList } from "@/components/frontend/intelligence/MissionsList";
@ -10,6 +11,10 @@ export const metadata = {
export default async function MissionsPage() {
const payload = await getPayload({ config });
const { user } = await payload.auth({
headers: await nextHeaders(),
canSetHeaders: false,
});
const missionsRes = await payload
.find({
@ -17,6 +22,8 @@ export default async function MissionsPage() {
sort: "-classification.startDateTime",
limit: 500,
depth: 2,
user,
overrideAccess: false,
})
.catch(() => ({ docs: [] }));