From 5360ec3d24419c96a896b3350cf18bba5e1ec906 Mon Sep 17 00:00:00 2001 From: Moritz Utcke Date: Mon, 21 Apr 2025 15:08:43 -0300 Subject: [PATCH] Ausweis als Admin bearbeiten --- src/pages/api/bedarfsausweis-gewerbe/[id].ts | 7 ++----- src/pages/api/bedarfsausweis-wohnen/[id].ts | 9 +++------ src/pages/api/geg-nachweis-gewerbe/[id].ts | 9 +++------ src/pages/api/geg-nachweis-wohnen/[id].ts | 9 +++------ src/pages/api/verbrauchsausweis-gewerbe/[id].ts | 7 ++----- src/pages/api/verbrauchsausweis-wohnen/[id].ts | 7 ++----- 6 files changed, 15 insertions(+), 33 deletions(-) diff --git a/src/pages/api/bedarfsausweis-gewerbe/[id].ts b/src/pages/api/bedarfsausweis-gewerbe/[id].ts index bab820d7..7c6d879a 100644 --- a/src/pages/api/bedarfsausweis-gewerbe/[id].ts +++ b/src/pages/api/bedarfsausweis-gewerbe/[id].ts @@ -3,7 +3,7 @@ import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { exclude } from "#lib/exclude.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; -import { prisma } from "#lib/server/prisma.js"; +import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { BedarfsausweisGewerbeSchema } from "src/generated/zod/bedarfsausweisgewerbe.js"; import { z } from "zod"; @@ -31,13 +31,10 @@ export const PATCH = defineApiRoute({ const objekt = await prisma.bedarfsausweisGewerbe.findUnique({ where: { id: ctx.params.id, - benutzer: { - id: user.id - } } }) - if (!objekt) { + if (!objekt || (objekt.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) { throw new APIError({ code: "NOT_FOUND", message: "Nachweis konnte nicht gefunden werden oder gehört einem anderen Benutzer." diff --git a/src/pages/api/bedarfsausweis-wohnen/[id].ts b/src/pages/api/bedarfsausweis-wohnen/[id].ts index e4b1d970..346380ab 100644 --- a/src/pages/api/bedarfsausweis-wohnen/[id].ts +++ b/src/pages/api/bedarfsausweis-wohnen/[id].ts @@ -3,7 +3,7 @@ import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { exclude } from "#lib/exclude.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; -import { prisma } from "#lib/server/prisma.js"; +import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { BedarfsausweisWohnenSchema } from "src/generated/zod/bedarfsausweiswohnen.js"; import { z } from "zod"; @@ -30,14 +30,11 @@ export const PATCH = defineApiRoute({ async fetch(input, ctx, user) { const objekt = await prisma.bedarfsausweisWohnen.findUnique({ where: { - id: ctx.params.id, - benutzer: { - id: user.id - } + id: ctx.params.id } }) - if (!objekt) { + if (!objekt || (objekt.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) { throw new APIError({ code: "NOT_FOUND", message: "Ausweis konnte nicht gefunden werden oder gehört einem anderen Benutzer." diff --git a/src/pages/api/geg-nachweis-gewerbe/[id].ts b/src/pages/api/geg-nachweis-gewerbe/[id].ts index 97904b9b..92290c42 100644 --- a/src/pages/api/geg-nachweis-gewerbe/[id].ts +++ b/src/pages/api/geg-nachweis-gewerbe/[id].ts @@ -3,7 +3,7 @@ import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { exclude } from "#lib/exclude.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; -import { prisma } from "#lib/server/prisma.js"; +import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { GEGNachweisGewerbeSchema } from "src/generated/zod/gegnachweisgewerbe.js"; import { z } from "zod"; @@ -30,14 +30,11 @@ export const PATCH = defineApiRoute({ async fetch(input, ctx, user) { const objekt = await prisma.gEGNachweisGewerbe.findUnique({ where: { - id: ctx.params.id, - benutzer: { - id: user.id - } + id: ctx.params.id } }) - if (!objekt) { + if (!objekt || (objekt.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) { throw new APIError({ code: "NOT_FOUND", message: "Nachweis konnte nicht gefunden werden oder gehört einem anderen Benutzer." diff --git a/src/pages/api/geg-nachweis-wohnen/[id].ts b/src/pages/api/geg-nachweis-wohnen/[id].ts index 5a7f2053..64a188e2 100644 --- a/src/pages/api/geg-nachweis-wohnen/[id].ts +++ b/src/pages/api/geg-nachweis-wohnen/[id].ts @@ -3,7 +3,7 @@ import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { exclude } from "#lib/exclude.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; -import { prisma } from "#lib/server/prisma.js"; +import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { GEGNachweisWohnenSchema } from "src/generated/zod/gegnachweiswohnen.js"; import { z } from "zod"; @@ -30,14 +30,11 @@ export const PATCH = defineApiRoute({ async fetch(input, ctx, user) { const objekt = await prisma.gEGNachweisWohnen.findUnique({ where: { - id: ctx.params.id, - benutzer: { - id: user.id - } + id: ctx.params.id } }) - if (!objekt) { + if (!objekt || (objekt.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) { throw new APIError({ code: "NOT_FOUND", message: "Nachweis konnte nicht gefunden werden oder gehört einem anderen Benutzer." diff --git a/src/pages/api/verbrauchsausweis-gewerbe/[id].ts b/src/pages/api/verbrauchsausweis-gewerbe/[id].ts index ca3fdd54..0469cb94 100644 --- a/src/pages/api/verbrauchsausweis-gewerbe/[id].ts +++ b/src/pages/api/verbrauchsausweis-gewerbe/[id].ts @@ -27,14 +27,11 @@ export const PATCH = defineApiRoute({ async fetch(input, ctx, user) { const objekt = await prisma.verbrauchsausweisGewerbe.findUnique({ where: { - id: ctx.params.id, - benutzer: { - id: user.id - } + id: ctx.params.id } }) - if (!objekt) { + if (!objekt || (objekt.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) { throw new APIError({ code: "NOT_FOUND", message: "Ausweis konnte nicht gefunden werden oder gehört einem anderen Benutzer." diff --git a/src/pages/api/verbrauchsausweis-wohnen/[id].ts b/src/pages/api/verbrauchsausweis-wohnen/[id].ts index 98fac976..116cf4b8 100644 --- a/src/pages/api/verbrauchsausweis-wohnen/[id].ts +++ b/src/pages/api/verbrauchsausweis-wohnen/[id].ts @@ -28,14 +28,11 @@ export const PATCH = defineApiRoute({ async fetch(input, ctx, user) { const objekt = await prisma.verbrauchsausweisWohnen.findUnique({ where: { - id: ctx.params.id, - benutzer: { - id: user.id - } + id: ctx.params.id } }) - if (!objekt) { + if (!objekt || (objekt.benutzer_id !== user.id && user.rolle !== Enums.BenutzerRolle.ADMIN)) { throw new APIError({ code: "NOT_FOUND", message: "Ausweis konnte nicht gefunden werden oder gehört einem anderen Benutzer."