Benutzer Rolle Fix

This commit is contained in:
Moritz Utcke
2025-08-04 20:16:04 -04:00
parent cbfa49b7bc
commit a05c32167e
19 changed files with 43 additions and 37 deletions

View File

@@ -2,20 +2,18 @@
import { Enums, prisma } from "#lib/server/prisma";
import UserLayout from "#layouts/DashboardLayout.astro";
import { getCurrentUser } from "#lib/server/user";
import moment from "moment";
const page = Number(Astro.url.searchParams.get("p"));
const user = await getCurrentUser(Astro);
if (!user) {
return Astro.redirect("/auth/login");
}
const totalPageCount = await prisma.aufnahme.count({
where:
user.rolle === Enums.BenutzerRolle.USER
user.rolle !== Enums.BenutzerRolle.ADMIN || Enums.BenutzerRolle.RESELLER
? {
benutzer: {
id: user.id,
@@ -24,14 +22,16 @@ const totalPageCount = await prisma.aufnahme.count({
: {},
});
if (page < 1 || page > totalPageCount) {
if ((page < 1 || page > totalPageCount) && totalPageCount > 0) {
return Astro.redirect("/dashboard/objekte?p=1");
} else if (totalPageCount === 0) {
return Astro.redirect("/dashboard/objekte/leer");
}
let result: { id: string; updated_at: Date }[] = [];
// Wir fragen den neuesten Ausweis ab
// Falls der Nutzer ein Admin ist dann kommt der ganz neueste ansonsten der neueste des eingeloggten Benutzers.
if (user.rolle === Enums.BenutzerRolle.USER) {
if (user.rolle !== Enums.BenutzerRolle.ADMIN || user.rolle === Enums.BenutzerRolle.RESELLER) {
result =
await prisma.$queryRaw`SELECT id, updated_at FROM "VerbrauchsausweisWohnen" WHERE benutzer_id = ${user.id} UNION ALL
SELECT id, updated_at FROM "VerbrauchsausweisGewerbe" WHERE benutzer_id = ${user.id} UNION ALL
@@ -41,15 +41,6 @@ if (user.rolle === Enums.BenutzerRolle.USER) {
SELECT id, updated_at FROM "GEGNachweisGewerbe" WHERE benutzer_id = ${user.id}
ORDER BY updated_at DESC LIMIT 1 OFFSET ${page - 1}`;
} else {
const date = moment().subtract(2, "hours").toDate()
// SELECT id, updated_at FROM "VerbrauchsausweisWohnen" WHERE created_at >= ${date} AND bestellt = ${true} UNION ALL
// SELECT id, updated_at FROM "VerbrauchsausweisGewerbe" WHERE created_at >= ${date} AND bestellt = ${true} UNION ALL
// SELECT id, updated_at FROM "BedarfsausweisWohnen" WHERE created_at >= ${date} AND bestellt = ${true} UNION ALL
// SELECT id, updated_at FROM "BedarfsausweisGewerbe" WHERE created_at >= ${date} AND bestellt = ${true} UNION ALL
// SELECT id, updated_at FROM "GEGNachweisWohnen" WHERE created_at >= ${date} AND bestellt = ${true} UNION ALL
// SELECT id, updated_at FROM "GEGNachweisGewerbe" WHERE created_at >= ${date} AND bestellt = ${true}
result =
await prisma.$queryRaw`SELECT id, updated_at FROM "VerbrauchsausweisWohnen" WHERE ausgestellt = ${false} AND bestellt = ${true} UNION ALL
SELECT id, updated_at FROM "VerbrauchsausweisGewerbe" WHERE ausgestellt = ${false} AND bestellt = ${true} UNION ALL