Add educator leave management and working time accounts

This commit is contained in:
t.indorf
2026-10-07 15:25:55 +02:00
parent ec3f4f933d
commit 043fed2e46
19 changed files with 5631 additions and 200 deletions
+28
View File
@@ -0,0 +1,28 @@
import { redirect } from "next/navigation";
import { UserRole } from "@prisma/client";
import { requireKitaSession } from "@/lib/auth-utils";
import { prisma } from "@/lib/prisma";
import type { StaffActor } from "./service";
export async function requireStaffActor(): Promise<StaffActor> {
const { user } = await requireKitaSession();
const current = await prisma.user.findFirst({
where: { id: user.id, kitaId: user.kitaId },
select: {
id: true,
kitaId: true,
role: true,
lockedUntil: true,
privacyPolicyAcceptedAt: true,
},
});
if (
!current?.kitaId ||
!current.privacyPolicyAcceptedAt ||
current.role !== user.role ||
(current.role !== UserRole.ADMIN && current.role !== UserRole.ERZIEHER) ||
(current.lockedUntil && current.lockedUntil > new Date())
)
redirect("/forbidden");
return { id: current.id, kitaId: current.kitaId, role: current.role };
}