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:
parent
8654eb40fa
commit
486fdca2a0
3 changed files with 18 additions and 5 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -62,6 +62,8 @@ export default async function FridayCalendarPage() {
|
|||
sort: "classification.startDateTime",
|
||||
depth: 1,
|
||||
limit: 200,
|
||||
user,
|
||||
overrideAccess: false,
|
||||
select: {
|
||||
name: true,
|
||||
codeName: true,
|
||||
|
|
|
|||
|
|
@ -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: [] }));
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue