Added time Ban and penalty

This commit is contained in:
PxlLoewe
2025-06-19 11:48:45 -07:00
parent e40cf0ffac
commit 4732ecb770
15 changed files with 327 additions and 56 deletions

View File

@@ -3,6 +3,7 @@ import Navbar from "./_components/navbar/Navbar";
import { redirect } from "next/navigation";
import { getServerSession } from "../api/auth/[...nextauth]/auth";
import { Error } from "_components/Error";
import { prisma } from "@repo/db";
export const metadata: Metadata = {
title: "VAR: Disponent",
@@ -15,6 +16,15 @@ export default async function RootLayout({
children: React.ReactNode;
}>) {
const session = await getServerSession();
const openPenaltys = await prisma.penalty.findMany({
where: {
userId: session?.user.id,
until: {
gte: new Date(),
},
type: "TIME_BAN",
},
});
if (!session || !session.user) {
redirect("/login");
@@ -25,6 +35,17 @@ export default async function RootLayout({
if (!session.user.permissions.includes("DISPO"))
return <Error title="Zugriff verweigert" statusCode={403} />;
if (openPenaltys[0]) {
return (
<Error
title="Du hast eine aktive Strafe"
statusCode={403}
description={`Du bist bis zum ${new Date(openPenaltys[0].until!).toLocaleString()} gesperrt.`}
/>
);
}
return (
<>
<Navbar />