Doku: Sicherheits- & Deployment-Hinweise (Auth, Rollen, Verifizierung)

Dokumentiert die deployment-kritischen und sicherheitsrelevanten Punkte der
Auth-Phase: Reihenfolge der Migrationen (Verifizierungs-Backfill gegen Lockout,
Legacy-editor→customer-Downgrade), der Sicherheits-Fix der Editor-Über-
berechtigung (65.950 Legacy-User hatten Admin-Zugriff), die Firmen-Scope-
Verhaltensänderung bei PMs und der Magic-Link-Kontaktzugang. PROGRESS-Log-
Eintrag (16.06.) und README-Index ergänzt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-06-16 08:35:04 +00:00
parent 980763c362
commit 84f7eb3aab
3 changed files with 113 additions and 1 deletions

View file

@ -5,6 +5,39 @@
---
## 2026-06-16 · WS-1/WS-6/WS-2 · Canonical, Auth-Flow, Sicherheitsfix, Firmen-Scope ✅
- **WS-1 (Canonical/SEO)**: Zentrale `<head>`-Infrastruktur im Web-Layout
(`<link rel="canonical">`, OpenGraph, Twitter-Cards). Self-Canonical aus der
Portal-URL + Request-Pfad (pro Portal getrennt) — bewusst nicht aus
`url()->current()`, da `URL::forceRootUrl` sonst alle Portale auf
pressekonto.test kanonisiert. Erfüllt Duplicate-Content-Update §5.
- **WS-6 (Auth-Flow)**: E-Mail-Verifizierung scharf geschaltet
(`User implements MustVerifyEmail`). Registrierung → inaktives, rollenloses
Konto → Danke-/Notice-Seite → Verifizierungsmail → Klick aktiviert + vergibt
`customer` (`ActivateUserAfterVerification`). Backfill-Migration verhindert
Lockout der ~59k aktiven Bestands-User. Magic-Link als Modal mit eigener
E-Mail-Eingabe. Logout auf Notice via POST-Formular (419-Fix). Guest-Redirect
rollenbewusst (403-Sackgasse). Magic-Link-Consume rollensicher.
- **🔒 SICHERHEIT**: Legacy-Import mappte Alt-Gruppe 2 (Self-Publisher, **65.950
User**) auf `editor` = **Admin-Panel-Zugriff**. Mapping auf `customer`
korrigiert; Daten-Migration stuft die bestehenden Legacy-Editoren herab
(`editor` → 0). Details + Deployment-Reihenfolge siehe
`docs/weiteres/Sicherheit & Deployment-Hinweise (Auth, Rollen, Verifizierung).md`.
- **WS-2 (Firmenkontakt-Zugang)**: PM-Zugriff von Autor-only auf **Autor ODER
Firmenmitglied** erweitert (Policy + Queries). `/pressekontakt-zugang`:
enumeration-sicheres Formular → lazy, de-duplizierter `customer`-Account +
Firmen-Mitgliedschaft + Login-Magic-Link (bestehende Infra wiederverwendet,
keine Schema-Änderung). Lazy-Account entsteht bei der Anfrage (bewusst, statt
fragiler `magic_links`-ENUM/FK-Migration über SQLite/MySQL).
- **Commits**: c804f3b (WS-1), 94cb209 (WS-6 + Sicherheitsfix), 980763c (WS-2).
- **Build/Test**: Suite 582 passed / 1 skipped, Pint clean, Web-Bundle gebaut.
- **Offen**: Google-Login (Socialite) als Rest aus WS-6; „Verwalten"-Link auf
der öffentlichen PM beim PM-Frontend-Wiring; strikt „Account erst beim Klick"
nur falls gewünscht (kostet Migration).
---
## 2026-06-12 · Tagesabschluss · PM-Vorschau-Feinschliff + Next Steps ✅
- **Was**: Letzte Review-Runde auf der PM-Vorschauseite: Sprache-Kachel