From 6d017c993daeaa4c459da4a2ae5dc1bff3549d46 Mon Sep 17 00:00:00 2001 From: bernd Date: Thu, 13 Aug 2026 18:52:19 +0000 Subject: [PATCH] Fix: Endgueltig-loeschen fuer zurueckgezogene Einladungen auch fuer Vermieter freigeben (nicht nur Admin) --- backend/src/routes/invitations.ts | 8 ++++---- web-dashboard/index.html | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/src/routes/invitations.ts b/backend/src/routes/invitations.ts index 6c24b68..c82378c 100644 --- a/backend/src/routes/invitations.ts +++ b/backend/src/routes/invitations.ts @@ -144,13 +144,13 @@ invitationsRouter.delete( }, ); -// DELETE /v1/invitations/:id/permanent (nur Admin) — zurückgezogene Einladung -// endgültig aus der Datenbank entfernen (im Gegensatz zum "Zurückziehen" -// oben, das nur den Status auf REVOKED setzt). +// DELETE /v1/invitations/:id/permanent (nur Vermieter/Admin) — zurückgezogene +// Einladung endgültig aus der Datenbank entfernen (im Gegensatz zum +// "Zurückziehen" oben, das nur den Status auf REVOKED setzt). invitationsRouter.delete( '/invitations/:id/permanent', requireAuth, - requireRole('ADMIN'), + requireRole('LANDLORD', 'ADMIN'), async (req: AuthedRequest, res: Response) => { const result = await prisma.invitation.deleteMany({ where: { id: req.params.id, status: 'REVOKED' }, diff --git a/web-dashboard/index.html b/web-dashboard/index.html index c004b7b..425eaf4 100644 --- a/web-dashboard/index.html +++ b/web-dashboard/index.html @@ -1690,7 +1690,7 @@ revokeBtn.onclick = () => revokeInvitation(inv.id); actionsTd.appendChild(revokeBtn); } - if (inv.status === 'REVOKED' && currentUser.role === 'ADMIN') { + if (inv.status === 'REVOKED' && (currentUser.role === 'LANDLORD' || currentUser.role === 'ADMIN')) { const deleteBtn = document.createElement('button'); deleteBtn.className = 'btn-secondary'; deleteBtn.textContent = 'Endgültig löschen';