Merge current features with security hardening and automatic safe initialization

This commit is contained in:
t.indorf
2026-10-09 23:29:19 +02:00
85 changed files with 13522 additions and 1326 deletions
@@ -5,6 +5,7 @@ import { NextResponse } from "next/server";
import { getKitaSession } from "@/lib/auth-utils";
import { prisma } from "@/lib/prisma";
import { visibleAnnouncementAudiences } from "@/lib/announcement-access";
export const runtime = "nodejs";
@@ -26,6 +27,7 @@ export async function GET(
id,
announcement: {
kitaId: user.kitaId,
audience: { in: visibleAnnouncementAudiences(user) },
},
},
select: {
+32
View File
@@ -0,0 +1,32 @@
import { revalidatePath } from "next/cache";
import { authorizeAlarmJob, runAlarmJob } from "@/lib/alarms/job";
export const runtime = "nodejs";
export const dynamic = "force-dynamic";
export async function POST(request: Request) {
const status = authorizeAlarmJob(request.headers.get("authorization"));
if (status !== 200)
return Response.json(
{
error:
status === 503
? "Fristprüfung ist nicht konfiguriert."
: "Nicht autorisiert.",
},
{ status },
);
try {
const result = await runAlarmJob();
revalidatePath("/dashboard");
revalidatePath("/dashboard/notdienst/alarm");
return Response.json(result);
} catch {
return Response.json(
{
error:
"Fristprüfung fehlgeschlagen; nächster Aufruf versucht es erneut.",
},
{ status: 500 },
);
}
}