Zum Inhalt springen

Mandantenverwaltung

Als System-Admin können Sie Mandanten (Tenants) über das Admin-Panel verwalten. Diese Seite beschreibt die verfügbaren Aktionen.

Die Mandantenverwaltung finden Sie im Admin-Dashboard unter Mandanten. Nur Benutzer mit der System-Rolle ADMIN haben Zugriff.

Fuer System-Admins gilt:

  • Es gibt kein automatischer Redirect ins Admin-Portal, wenn Sie sich bereits im Portal-Kontext befinden.
  • Portal und Admin koennen parallel genutzt werden (z. B. fuer Role-Switching oder Tenant-Kontext-Wechsel).
  • Tenant-spezifische API-Endpunkte bleiben dennoch strikt tenant-gebunden (ungueltiger Kontext fuehrt zu 403).
  • Auf tenant-gebundenen Portal-Seiten wie Wohnungen wird ohne Property-Kontext kein Datenabruf gestartet; die Ansicht bleibt leer, bis ein gueltiger Kontext vorhanden ist.

Zusaetzlich zur Mandantenliste steht auf der Admin-Subdomain eine globale Parkplatzverwaltung zur Verfuegung:

  • Admin -> Stammdaten -> Parkplaetze
  • Route: /app/admin/parking-spaces

Damit koennen System-Admins tenant-uebergreifend Parkplaetze erstellen, bearbeiten und loeschen.

System-Rollen (SUPPORT): Die Sichtbarkeit dieses Menuepunkts wird ueber das Feature parkingSpaces.view in System-Rollen gesteuert.

Für jeden Mandanten steht ein Kontextmenü (⋯) mit folgenden Einträgen zur Verfügung:

  1. Details anzeigen – Read-Only-Übersicht (Visitenkarte)
  2. Statistiken – Aggregierte Nutzungsstatistiken
  3. Bearbeiten – Stammdaten bearbeiten
  4. Benutzer – Alle Mitglieder des Mandanten anzeigen (nur Lesen)
  5. Lizenzen – Lizenz- und Abrechnungsinformationen
  6. (Separator)
  7. Deaktivieren / Reaktivieren
  8. Löschen

Über das Menü (⋯) → Details anzeigen öffnet sich eine schreibgeschützte Übersicht des Mandanten mit folgenden Bereichen:

  • Grundinformationen: Name, Mandanten-ID, Erstellt-am-Datum.
  • Abonnement: Aktueller Status (Aktiv, Testphase, Überfällig, Gekündigt), Plan, Abo-Ende, Liegenschafts-Nutzung.
  • Bestand: Anzahl Mitglieder, Liegenschaften, Wohnungen, Parkplätze.
  • Aktivität (letzte 30 Tage): Letzte Anmeldung, Anmeldungen gesamt, aktive Benutzer, Audit-Aktionen.
  • Deaktivierung (nur bei deaktivierten Mandanten): Deaktivierungsdatum und Übergangsfrist.

Über das Menü (⋯) → Statistiken öffnet sich ein detailliertes Statistik-Dashboard mit:

  • KPI-Karten: Buchungen, Vorfälle, Kennzeichen-Scans, Anmeldungen pro Zeitraum.
  • Aktivitäts-Verlauf: Tagesbasiertes Liniendiagramm der Audit-Aktionen.
  • Scan-Verteilung: Donut-Diagramm nach Scan-Typ (Normal, Überschreitung, Unbekannt).
  • Login-Aufschlüsselung: Donut-Diagramm nach Subdomain (Portal, Go-App, Admin).
  • Nutzungs-Übersicht: Audit-Aktionen, gesendete Nachrichten, erstellte Support-Tickets.
  • Top-Listen / Ranglisten: Meistgenutzte Parkplätze, aktivste Bewohner, häufigste Kennzeichen, längste Buchungen, meiste Stornierungen, Parkplätze mit Überziehungen (Buchungen). Bei Vorfällen: meist betroffene Parkplätze, häufigste gemeldete Kennzeichen, schnellste Erledigungen, aktivste Melder, aktivste Antworter, meist betroffene Wohnungen.

Der Zeitraum kann auf 7, 30, 90 oder 365 Tage eingestellt werden. Optional kann nach Liegenschaft gefiltert werden.

Sie können einen Mandanten vorübergehend deaktivieren, ohne seine Daten zu löschen.

  1. Öffnen Sie die Mandantenliste im Admin-Dashboard.
  2. Klicken Sie beim gewünschten Mandanten auf das Menü (⋯) → Deaktivieren.
  3. Geben Sie optional einen Grund ein und bestätigen Sie.
  • Der Mandant wird als inaktiv markiert (isActive = false).
  • Alle aktiven Sessions der Mandanten-Mitglieder werden sofort beendet (Logout).
  • Es beginnt eine Karenzzeit (standardmässig 14 Tage).

Während der Karenzzeit:

  • Mitglieder können sich noch anmelden und ihre Daten einsehen (Read-only).
  • Schreibende Aktionen (Erstellen, Bearbeiten, Löschen von Daten) sind blockiert.
  • Ein gelber Warnbanner zeigt die verbleibenden Tage bis zur Sperrung an.

Nach Ablauf der Karenzzeit:

  • Mitglieder können sich nicht mehr anmelden.
  • Ein roter Banner informiert über die Kontosperrung (nicht schliessbar).
  1. Klicken Sie beim deaktivierten Mandanten auf das Menü (⋯) → Reaktivieren.
  2. Der Mandant wird sofort wieder aktiv. Mitglieder können sich direkt wieder anmelden.

Beim Löschen eines Mandanten werden alle zugehörigen Daten entfernt:

  • Alle Liegenschaften (Properties) und deren Einstellungen
  • Alle Wohnungen (Apartments) und Parkplätze
  • Alle Besucher-Daten, Buchungen und Anfragen
  • Alle Mitgliedschaften (TenantMember, PropertyMember)
  • Alle Einladungen
  • Alle Nachrichten und Support-Tickets
  • Alle Audit-Logs (ein letzter Audit-Eintrag wird vor der Löschung erstellt)
  • Der Mandant selbst
  1. Klicken Sie beim Mandanten auf das Menü (⋯) → Löschen.
  2. Bestätigen Sie durch Eingabe des Mandantennamens.
  3. Die Löschung wird in einer einzigen Datenbank-Transaktion durchgeführt – entweder alles oder nichts.

Als System-Admin können Sie einem Mandanten kostenlose Tage gutschreiben – z.B. als Rückerstattung, Bug-Bounty-Belohnung oder Kulanzgeste.

  1. Klicken Sie beim Mandanten auf das Menü (⋯) → Lizenzen.
  2. Im Bereich Crédits geben Sie die Anzahl Tage (1–365) und einen Grund ein.
  3. Klicken Sie auf Gutschrift hinzufügen.
  • Die Gutschrift ist kumulativ: Mehrere Gutschriften stapeln sich.
  • Es gibt ein absolutes Maximum von 2 Jahren (730 Tagen) ab dem aktuellen Datum.
  • Solange die Gutschrift aktiv ist, wird der Mandant nicht gesperrt – auch bei abgelaufener Testphase oder offenen Zahlungen.
  • Ein blauer INFO-Banner informiert die Mandanten-Mitglieder über die aktive Gutschrift und das Ablaufdatum.
  • Alle Gutschriften werden im Gutschrift-Verlauf protokolliert (inkl. Admin, Datum, Grund).

Über das Menü (⋯) → Lizenzen können Sie sämtliche Lizenz- und Abrechnungsinformationen eines Mandanten einsehen:

  • Abo-Übersicht: Aktueller Plan, Status, Trial-Ende, Grace Period, Plan-Limits.
  • Billing & Integration: Billing-E-Mail, Adresse, Stripe-IDs, Abrechnungszeitraum.
  • Gutschriften: Aktiver Credit-Status, Gutschrift hinzufügen, Gutschrift-Verlauf.

Über das Menü (⋯) → Benutzer erhalten Sie eine schreibgeschützte Übersicht aller Mitglieder des Mandanten:

  • Name: Vor- und Nachname (oder E-Mail als Fallback) mit Avatar-Initiale.
  • E-Mail: E-Mail-Adresse des Mitglieds.
  • Rollen: Alle zugewiesenen Rollen (z.B. Inhaber, Verwalter, Operativ) als farbige Badges.
  • Status: Aktiv oder Inaktiv.
  • Mitglied seit: Datum des Beitritts.

Über das Menü (⋯) → Bearbeiten können Sie Stammdaten des Mandanten anpassen:

  • Grunddaten: Name, ID, Erstellt-am-Datum.
  • Adresse & Stammdaten: Anschrift, PLZ, Stadt, Land, USt-IdNr.
  • Deaktivierungs-Einstellungen: Übergangsfrist, Deaktivierungsgrund.
  • Onboarding: Onboarding-Status und Schritt.

Personenbezogene Daten (Name, E-Mail) von Mandanten-Mitgliedern sind im Admin-Panel standardmässig maskiert. Der Support-Zugang erfolgt ausschliesslich über das Ticket-System — nie direkt über die Verwaltungsseite.

Das System kennt zwei Zugangsstufen:

  1. Dateneinsicht (DATA_VIEW): Der Support-Mitarbeiter kann Name und E-Mail des Ticket-Erstellers einsehen.
  2. Mandanten-Zugang (TENANT_ACCESS): Der Support-Mitarbeiter erhaelt temporaeren Zugang zum gesamten Mandanten fuer operative Arbeiten und kann danach vollstaendig im Tenant arbeiten. Neue Freigaben bleiben ticket-basiert bei Inhaber/Verwalter; ein bereits freigegebener SYSTEM_SUPPORT-Benutzer kann aktive Zugriffe im gewaehrten Tenant ebenfalls wieder beenden.

Schritt-für-Schritt:

  1. Der Support-Mitarbeiter übernimmt ein Support-Ticket (Claim).
  2. Er beantragt über das Ticket Dateneinsicht oder Mandanten-Zugang.
  3. Ein Benutzer mit der Rolle Inhaber oder Verwalter (bei verwaisten Benutzern: der Ticket-Ersteller selbst) erhält eine Benachrichtigung im Ticket und kann die Anfrage gewähren oder ablehnen.
  4. Nach der Gewährung ist der Zugang aktiv und läuft automatisch ab oder wird beim Ticket-Schliessen entzogen. Abgelaufene TENANT_ACCESS-Rechte werden per Cron-Job aus TenantMember entfernt/entzogen.

Solange ein aktiver Zugang besteht:

  • Mitgliederdaten (Name, E-Mail) werden unverschlüsselt angezeigt.
  • Ein grünes Support aktiv-Badge erscheint in der Mandantenliste.

Ohne aktiven Support-Zugang:

  • Alle personenbezogenen Daten sind maskiert (z.B. M*** @e***.***).
  • In der globalen Benutzerliste und der Wohnungsliste sind Daten immer maskiert.
  • In der Wohnungsliste erscheint ein “Daten maskiert”-Badge neben maskierten Bewohnernamen.

Support-Mitarbeiter mit aktivem Mandanten-Zugang erscheinen nicht in der Benutzerliste unter Verwaltung > Benutzer. Der temporäre Zugang ist ausschliesslich über die Karte Support-Zugang im Portal sichtbar und verwaltbar.

Die Verwaltung kann aktive Zugriffsanfragen jederzeit ueber die Karte Support-Zugang im Portal widerrufen. Der Widerruf ist sofort wirksam. Im Admin-Banner wird dabei die genehmigende Person angezeigt, nicht der Support-Antragsteller.

Die Historie der Support-Zugaenge stammt aus SupportAccessRequest (Status wie EXPIRED, REVOKED, DENIED) und nicht aus einer TenantMember-Historie.

Benutzer ohne Mandanten-Zugehörigkeit können ausschliesslich Dateneinsicht (DATA_VIEW) gewähren. Ein Mandanten-Zugang ist für diese Benutzer nicht anwendbar und wird vom System blockiert.

Alle Aktionen (Anfrage, Gewährung, Ablehnung, Widerruf) werden im Audit-Log protokolliert — inkl. durchführender Person und Zeitstempel. Der automatische Ablauf wird zusätzlich als interne Systemnotiz im Ticket-Protokoll festgehalten.

Plattform-Admins/-Support erhalten Tenant-Einsicht nur mit aktivem SYSTEM_SUPPORT-Grant; ein ungültiger oder abgelaufener Tenant-Kontext führt nicht zu einem stillen Fallback auf andere Mandanten.

Technischer Hinweis (ADR-PS-322): Falls ein veralteter Mandantenkontext im Browser gespeichert ist, bereinigt der Client diesen bei lesenden API-Aufrufen automatisch und versucht den Abruf einmal erneut. Schreibende Aktionen werden aus Sicherheitsgründen nicht automatisch wiederholt.

Zusätzlich werden tenant-bezogene CRUD-Änderungen in Portal/Go (z. B. Parkplatz anlegen, Bewohner aktualisieren/löschen, Abschlepp-Partner aktualisieren/löschen) mandantenbezogen im Audit-Log erfasst. Im Vorfall-Flow bleiben Incidents nach Timeout eskalierbar (kein Auto-Close); Abschluss erfolgt erst durch aktive Aktion wie “Auto weggefahren” oder abgeschlossenen Abschleppprozess.

In der Mandantenliste sehen Sie den Status jedes Mandanten:

  • Aktiv: Der Mandant ist normal nutzbar.
  • Deaktiviert (graues Badge): Der Mandant wurde administrativ deaktiviert.
  • Support aktiv (grünes Badge): Der Mandant hat einen aktiven Support-Zugang.
  • Zusätzlich wird der Subscription-Status (Trial, Active, Past Due, etc.) angezeigt.