Schutz gegen kursierende Partner-Codes (Rene: 'Bonus-Codes kursieren gerne das Internet')
1. QR-URL verrät den Code nicht mehr: /q/{token} → /?qr=TOKEN (vorher stand
der tippbare Code in der Adresszeile jedes Scanners). Registrierung löst
den Code server-seitig aus dem Token auf (auch ohne ref_code).
2. Notbremse: partner_codes.active — Admin kann Codes pausieren (Einlösung
gesperrt, Info-Endpoint 404, Historie/QR-Kontingente bleiben) und
reaktivieren. UI: ⏸/▶-Toggle + pausiert-Badge in der Codes-Tabelle.
3. max_uses im Anlege-Formular standardmäßig 50 statt unbegrenzt.
Tests: QR-only-Registrierung, Pause→keine Einlösung→Reaktivierung,
Redirect ohne Klartext-Code. Suite: 54 passed.
This commit is contained in:
parent
21bcc6b962
commit
2927ae2672
11 changed files with 136 additions and 39 deletions
|
|
@ -627,6 +627,8 @@ def _migrate(conn_factory):
|
|||
("users", "referred_qr", "TEXT"),
|
||||
# Partner-Code → Besitzer (für Self-Service: eigene QR-Kontingente + Stats einsehen)
|
||||
("partner_codes", "owner_user_id", "INTEGER"),
|
||||
# Notbremse für geleakte Codes: 0 = pausiert (Einlösung gesperrt, Historie bleibt)
|
||||
("partner_codes", "active", "INTEGER NOT NULL DEFAULT 1"),
|
||||
# Passwort-Zurücksetzen
|
||||
("users", "password_reset_token", "TEXT"),
|
||||
("users", "password_reset_expires", "TEXT"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue