82 lines
2.3 KiB
TypeScript
82 lines
2.3 KiB
TypeScript
import { getPublicUser, prisma } from "@repo/db";
|
|
import { TriangleAlert } from "lucide-react";
|
|
import { PenaltyCountdown } from "./PenaltyCountdown";
|
|
import { getServerSession } from "api/auth/[...nextauth]/auth";
|
|
|
|
export const Penalty = async () => {
|
|
const session = await getServerSession();
|
|
const openTimeban = await prisma.penalty.findMany({
|
|
where: {
|
|
userId: session?.user.id,
|
|
until: {
|
|
gte: new Date(),
|
|
},
|
|
suspended: false,
|
|
type: { in: ["TIME_BAN"] },
|
|
},
|
|
include: {
|
|
CreatedUser: true,
|
|
},
|
|
});
|
|
|
|
const openBans = await prisma.penalty.findMany({
|
|
where: {
|
|
userId: session?.user.id,
|
|
suspended: false,
|
|
type: { in: ["BAN"] },
|
|
},
|
|
include: {
|
|
CreatedUser: true,
|
|
},
|
|
});
|
|
|
|
console.log("Open Penaltys:", session);
|
|
|
|
return (
|
|
<div className="card bg-error shadow-xl mb-4 col-span-6 xl:col-span-3">
|
|
{openTimeban[0] && openTimeban[0].type === "TIME_BAN" && (
|
|
<div className="card-body text-base-300">
|
|
<h2 className="card-title text-3xl">
|
|
<TriangleAlert />
|
|
Aktive Strafe - <PenaltyCountdown until={openTimeban[0].until ?? new Date()} />{" "}
|
|
verbleibend
|
|
</h2>
|
|
<p className="text-left font-bold">
|
|
Du hast eine aktive Strafe und kannst dich deshalb nicht mit dem Netzwerk verbinden.
|
|
</p>
|
|
<p className="text-left">
|
|
<span className="font-bold">Grund:</span> {openTimeban[0].reason}
|
|
</p>
|
|
<p className="text-left">
|
|
<span className="font-bold">Admin:</span>{" "}
|
|
{getPublicUser(openTimeban[0].CreatedUser).fullName}
|
|
</p>
|
|
</div>
|
|
)}
|
|
{session?.user.isBanned && (
|
|
<div className="card-body text-base-300">
|
|
<h2 className="card-title text-3xl">
|
|
<TriangleAlert />
|
|
Du wurdest permanent von VirtualAirRescue ausgeschlossen.
|
|
</h2>
|
|
<p className="text-left font-bold">
|
|
Dein Fehlverhalten war so schwerwiegend, dass du dauerhaft von VirtualAirRescue
|
|
ausgeschlossen wurdest. Du kannst dich nicht mehr mit dem Netzwerk verbinden.
|
|
</p>
|
|
{openBans[0] && (
|
|
<>
|
|
<p className="text-left font-bold">
|
|
Grund: {openBans[0].reason || "Keine Begründung gefunden"}
|
|
</p>
|
|
<p className="text-left">
|
|
<span className="font-bold">Admin:</span>{" "}
|
|
{getPublicUser(openBans[0].CreatedUser).fullName || "Keine Admin gefunden"}
|
|
</p>
|
|
</>
|
|
)}
|
|
</div>
|
|
)}
|
|
</div>
|
|
);
|
|
};
|