Benutzer Rolle Fix
This commit is contained in:
@@ -15,7 +15,7 @@ if (!user) {
|
||||
|
||||
const totalPageCount = await prisma.aufnahme.count({
|
||||
where:
|
||||
user.rolle === Enums.BenutzerRolle.USER
|
||||
user.rolle !== Enums.BenutzerRolle.ADMIN
|
||||
? {
|
||||
benutzer: {
|
||||
id: user.id,
|
||||
@@ -27,7 +27,7 @@ const totalPageCount = await prisma.aufnahme.count({
|
||||
let ausweis;
|
||||
// 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) {
|
||||
const adapter = getPrismaAusweisAdapter(id);
|
||||
ausweis = await adapter?.findUnique({
|
||||
where: {
|
||||
|
||||
@@ -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
|
||||
|
||||
15
src/pages/dashboard/objekte/leer.astro
Normal file
15
src/pages/dashboard/objekte/leer.astro
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
import DashboardLayout from "#layouts/DashboardLayout.astro";
|
||||
import { getCurrentUser } from "#lib/server/user";
|
||||
|
||||
const user = await getCurrentUser(Astro);
|
||||
|
||||
if (!user) {
|
||||
return Astro.redirect("/auth/login");
|
||||
}
|
||||
|
||||
---
|
||||
|
||||
<DashboardLayout title="Objekte" user={user} besteller={null}>
|
||||
<p>Sie haben bisher keine Ausweise erstellt. Klicken sie <a href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/">hier</a>, um einen neuen Ausweis zu erstellen.</p>
|
||||
</DashboardLayout>
|
||||
Reference in New Issue
Block a user