recht: Meldeverfahren v2 Phasen 1-4 — Re-Sync-Sperre, Anonymisierung, Magic-Link-Intake, Self-Service-Korrektur
Phase 1: sync_locked_at auf press_releases (Importer überspringt gesperrte PMs auch bei --force), LegalRequest um Verifikation/Ausführung erweitert, verschlüsselte Vorher-Snapshots mit Löschfrist (snapshots:purge, täglich). Phase 2: AnonymizationService (Unicode-Wortgrenzen-Schwärzung, Pflicht-Diff, transaktionale Ausführung mit Snapshot, Kontakt-Detach, Bild-Löschung, Sitemap-Invalidierung, Verlauf ohne Klartext-Altwerte); Admin-Queue kann DSGVO-Anfragen anonymisieren oder depublizieren, inkl. Snapshot-Restore. Phase 3: Deflektions-Trichter „PM melden/ändern" (melden/pm) mit Kosten- Tabelle vorab; Magic-Link geht nur an die hinterlegte Pressekontaktadresse (neuer purpose press_release_report), atomare Verifikation, Anliegen-Auswahl erzeugt verifizierte Queue-Anfragen; toter-Kanal-Fallback; Owner-Einstieg. Phase 4: Panel-Abschnitt „Änderung & Korrektur" — Levenshtein-Gate (5 %, Mini-Edit-Ausnahme ≤ 2 Zeichen) stuft klein/groß ein; kleine Korrektur kostenlos sofort live (Snapshot, Sperre, Verlauf, Re-Score), größere als Change-Anfrage (Interim bis 10-€-Checkout, Phase 7). Entwicklungsplan mit Entscheidungen E1-E8 und offenen Punkten in docs/Decision-Update; 41 Pest-Tests (tests/Feature/Legal) grün. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
021ee2d23c
commit
04b49c567d
42 changed files with 3868 additions and 1 deletions
|
|
@ -31,4 +31,57 @@ return [
|
|||
|
||||
'contact_email' => env('LEGAL_CONTACT_EMAIL', 'info@pressekonto.com'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Meldeverfahren v2 (Entscheidungen E3–E5, 22.07.2026)
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| reversal_window_days: Zeitfenster, in dem eine Depublizierung/
|
||||
| Anonymisierung über den Admin rückgängig gemacht werden kann.
|
||||
|
|
||||
| snapshot_retention_days: Löschfrist der verschlüsselten Vorher-
|
||||
| Snapshots (press_release_redaction_snapshots, snapshots:purge).
|
||||
|
|
||||
| correction_max_distance_percent: maximale relative Levenshtein-
|
||||
| Distanz pro Feld, bis zu der eine Selbstbedienungs-Korrektur als
|
||||
| „klein/kostenlos" (Spur A) gilt; darüber → Spur D (kostenpflichtig).
|
||||
|
|
||||
*/
|
||||
|
||||
'reversal_window_days' => (int) env('LEGAL_REVERSAL_WINDOW_DAYS', 14),
|
||||
'snapshot_retention_days' => (int) env('LEGAL_SNAPSHOT_RETENTION_DAYS', 30),
|
||||
'correction_max_distance_percent' => (int) env('LEGAL_CORRECTION_MAX_DISTANCE_PERCENT', 5),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Meldeverfahren: Magic-Link-Verifikation (Phase 3, E7)
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| report_link_ttl_hours: Gültigkeit des Verifikations-Links an die
|
||||
| hinterlegte Pressekontaktadresse.
|
||||
|
|
||||
| report_session_minutes: Wie lange der verifizierte Bereich (Anliegen-
|
||||
| Auswahl) nach Klick auf den Link nutzbar bleibt.
|
||||
|
|
||||
| report_links_per_day: Rate-Limit pro PM — mehr Link-Mails pro Tag
|
||||
| gehen nicht raus (Schutz vor Fluten fremder Kontakt-Postfächer).
|
||||
|
|
||||
*/
|
||||
|
||||
'report_link_ttl_hours' => (int) env('LEGAL_REPORT_LINK_TTL_HOURS', 72),
|
||||
'report_session_minutes' => (int) env('LEGAL_REPORT_SESSION_MINUTES', 60),
|
||||
'report_links_per_day' => (int) env('LEGAL_REPORT_LINKS_PER_DAY', 3),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Meldeverfahren: Spur A — Kleine Korrektur (Phase 4)
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| corrections_per_week: maximale Selbstbedienungs-Korrekturen pro PM in
|
||||
| 7 Tagen — verhindert den kostenlosen Voll-Editor per Salami-Taktik.
|
||||
|
|
||||
*/
|
||||
|
||||
'corrections_per_week' => (int) env('LEGAL_CORRECTIONS_PER_WEEK', 1),
|
||||
|
||||
];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue