Fix period editing and harden app with Next.js security upgrade
All checks were successful
CI / Build (push) Successful in 1m10s
CI / Deploy (push) Successful in 1m11s

This commit is contained in:
Jan Hanewinkel
2026-04-20 00:02:46 +02:00
parent 5a8b0871a0
commit f947908f0e
14 changed files with 2595 additions and 51 deletions

View File

@@ -6,9 +6,9 @@ import prisma from "@/lib/prisma";
import { getCurrentViewer } from "@/lib/session";
type Context = {
params: {
params: Promise<{
id: string;
};
}>;
};
function asRecord(value: unknown, label: string) {
@@ -65,6 +65,7 @@ function asApprovalPermissions(value: unknown) {
}
export async function POST(_: Request, { params }: Context) {
const { id } = await params;
const viewer = await getCurrentViewer();
if (!viewer) {
@@ -77,7 +78,7 @@ export async function POST(_: Request, { params }: Context) {
const auditLog = await prisma.auditLog.findUnique({
where: {
id: params.id
id
}
});
@@ -297,6 +298,22 @@ export async function POST(_: Request, { params }: Context) {
break;
}
case "period.update": {
const previous = asRecord(rollback.previous, "Zeitraum");
await tx.accountingPeriod.update({
where: {
id: asString(previous.id, "Zeitraum-ID")
},
data: {
name: asString(previous.name, "Zeitraumname"),
startsAt: asDate(previous.startsAt, "Zeitraumstart") ?? new Date(),
endsAt: asDate(previous.endsAt, "Zeitraumende") ?? new Date()
}
});
break;
}
case "period.setCurrent": {
const previousCurrentPeriodId = asNullableString(rollback.previousCurrentPeriodId);