Implement user account deletion flow
POST /user/delete (auth required) verifies the password via pass1 and transactionally removes the user's sessions, votes, entries and the user row, then clears the session cookie. Associated media files are removed best effort after commit. This was only a stub in the Flask original. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+14
-3
@@ -174,9 +174,21 @@ Eigene Account-Informationen.
|
||||
|
||||
---
|
||||
|
||||
### `GET /user/delete`
|
||||
### `POST /user/delete`
|
||||
|
||||
Account löschen. (*Noch nicht implementiert.*)
|
||||
Eigenen Account dauerhaft löschen. Beiträge, Votes und Sessions werden
|
||||
mitgelöscht, zugehörige Mediendateien best effort entfernt.
|
||||
|
||||
**Auth:** erforderlich
|
||||
|
||||
**Request (form-encoded):**
|
||||
| Feld | Typ | Beschreibung |
|
||||
|------|-----|--------------|
|
||||
| `pass1` | string | Passwort zur Bestätigung |
|
||||
|
||||
**Response:**
|
||||
- `200` `{"status": "deleted"}` + löscht den `session`-Cookie
|
||||
- `403` bei falschem Passwort
|
||||
|
||||
---
|
||||
|
||||
@@ -223,7 +235,6 @@ CREATE TABLE vote (
|
||||
## Offene Punkte
|
||||
|
||||
- `/entry/:pid/interactions/:mode` ist auskommentiert — Voting-Logik muss neu designed werden
|
||||
- `/user/delete` ist noch ein Stub
|
||||
- Kein Rate-Limiting außer dem zufälligen `sleep` beim Login
|
||||
- `session`-Token ist nur `randbelow(999999999) + timestamp` — sollte auf `crypto/rand` umgestellt werden
|
||||
- Fehler-Responses sind aktuell Plaintext/HTML — in der Go-API einheitlich JSON
|
||||
|
||||
Reference in New Issue
Block a user