From 17ebd471e8f8780268de19d974d7fc4403808996 Mon Sep 17 00:00:00 2001 From: lucuswolfius Date: Mon, 2 Jun 2025 10:03:59 -0700 Subject: [PATCH] hide admin elements in navbar when not permitted --- apps/hub/app/_components/Nav.tsx | 79 +++++++++++++-------- packages/database/prisma/schema/user.prisma | 1 + 2 files changed, 51 insertions(+), 29 deletions(-) diff --git a/apps/hub/app/_components/Nav.tsx b/apps/hub/app/_components/Nav.tsx index 13d8c703..d9a3c1cf 100644 --- a/apps/hub/app/_components/Nav.tsx +++ b/apps/hub/app/_components/Nav.tsx @@ -8,8 +8,15 @@ import { } from "@radix-ui/react-icons"; import Link from "next/link"; import { WarningAlert } from "./ui/PageAlert"; +import { getServerSession } from "api/auth/[...nextauth]/auth"; +import { Error } from "./Error"; -export const VerticalNav = () => { +export const VerticalNav = async () => { + const session = await getServerSession(); + if (!session?.user) return ; + const viewAdminMenu = session.user.permissions.some((p) => { + return p.startsWith("ADMIN"); + }); return ( ); }; diff --git a/packages/database/prisma/schema/user.prisma b/packages/database/prisma/schema/user.prisma index 797d316b..70d7df3e 100644 --- a/packages/database/prisma/schema/user.prisma +++ b/packages/database/prisma/schema/user.prisma @@ -14,6 +14,7 @@ enum PERMISSION { AUDIO_ADMIN ADMIN_STATION ADMIN_KEYWORD + ADMIN_MESSAGE AUDIO PILOT DISPO