Fix period editing and harden app with Next.js security upgrade
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user