feat(auth): Logout fragt nach Löschen lokaler Daten #125

Closed
opened 2026-05-18 20:13:45 +00:00 by jreinemann-euris · 0 comments
jreinemann-euris commented 2026-05-18 20:13:45 +00:00 (Migrated from github.com)

Kontext

Es gibt zwei Arten von Nutzern:

  • Nicht eingeloggte User (kein Server-Account): Nutzen nur lokale Funktionen (Inventar etc.) – keine Änderung.
  • Eingeloggte User: Haben sich auf dem Server authentifiziert und nutzen Sync/Chat/etc.

Problem

Wenn ein eingeloggter User auf den Logout-Button tippt, werden aktuell keine lokalen Daten bereinigt. Das kann dazu führen, dass beim nächsten Login (ggf. mit anderem Account) alte Daten noch sichtbar sind.

Anforderung

Nach dem Tippen auf den Logout-Button nur für eingeloggte User:

  1. Dialog anzeigen:

    „Lokale Daten löschen?"
    „Möchtest du alle lokal gespeicherten Daten (Inventar, Nachrichten, …) von diesem Gerät entfernen?"
    [Löschen] [Behalten]

  2. Bei „Löschen": Lokale Room-Datenbank droppen (alle Tabellen / DB-Datei löschen), dann ausloggen und zur Login-/Startseite navigieren.

  3. Bei „Behalten": Normaler Logout ohne Datenlöschung, zur Login-/Startseite navigieren.

Nicht betroffen

  • User ohne Server-Login: kein Dialog, kein Datenverlust.
  • Automatischer Session-Ablauf (Token expired): kein Dialog – Daten bleiben erhalten.

Akzeptanzkriterien

  • Logout-Button zeigt nur für eingeloggte User den Bestätigungsdialog
  • „Löschen" droppt die lokale DB und loggt aus
  • „Behalten" loggt aus, Daten bleiben erhalten
  • Nach beiden Aktionen landet der User auf dem Startscreen (nicht eingeloggt)
  • Nicht eingeloggte User sehen beim Logout keinen Dialog
## Kontext Es gibt zwei Arten von Nutzern: - **Nicht eingeloggte User** (kein Server-Account): Nutzen nur lokale Funktionen (Inventar etc.) – keine Änderung. - **Eingeloggte User**: Haben sich auf dem Server authentifiziert und nutzen Sync/Chat/etc. ## Problem Wenn ein eingeloggter User auf den **Logout-Button** tippt, werden aktuell keine lokalen Daten bereinigt. Das kann dazu führen, dass beim nächsten Login (ggf. mit anderem Account) alte Daten noch sichtbar sind. ## Anforderung Nach dem Tippen auf den Logout-Button **nur für eingeloggte User**: 1. Dialog anzeigen: > **„Lokale Daten löschen?"** > „Möchtest du alle lokal gespeicherten Daten (Inventar, Nachrichten, …) von diesem Gerät entfernen?" > [**Löschen**] [**Behalten**] 2. Bei „**Löschen**": Lokale Room-Datenbank droppen (alle Tabellen / DB-Datei löschen), dann ausloggen und zur Login-/Startseite navigieren. 3. Bei „**Behalten**": Normaler Logout ohne Datenlöschung, zur Login-/Startseite navigieren. ## Nicht betroffen - User ohne Server-Login: kein Dialog, kein Datenverlust. - Automatischer Session-Ablauf (Token expired): kein Dialog – Daten bleiben erhalten. ## Akzeptanzkriterien - [ ] Logout-Button zeigt nur für eingeloggte User den Bestätigungsdialog - [ ] „Löschen" droppt die lokale DB und loggt aus - [ ] „Behalten" loggt aus, Daten bleiben erhalten - [ ] Nach beiden Aktionen landet der User auf dem Startscreen (nicht eingeloggt) - [ ] Nicht eingeloggte User sehen beim Logout keinen Dialog
Sign in to join this conversation.
No description provided.