presseportale/config/legal.php
Kevin Adametz 9afbedddeb recht: Meldeverfahren v2 Phasen 5+7 — DSGVO-Strukturformular, 10-€-Checkout mit KI-Vorprüfung, Triage & Panel-Modal
Phase 7 (Spur D, E2 revidiert): KI-Vorprüfung VOR der Zahlung im Modal —
rot lehnt ohne Zahlung ab, gelb/grün führt zum Stripe-Checkout
(SinglePurchaseType::Change, 10 € netto), nach Zahlungseingang übernimmt
der Webhook die geprüfte Fassung sofort (applyPaid: Snapshot, Sperre,
Verlauf). Nur einmal je PM; Obergrenze legal.change_max_distance_percent
(50 %) verhindert die verdeckte Selbst-Depublizierung.

Phase 5 (Spur B): strukturiertes Schwärzungsformular mit Pflicht-Vorschau
im verifizierten Web-Bereich UND als Modal im Kunden-Panel; Admin-Editor
wird aus payload.redaction vorbefüllt. Umsetzungsmail LegalRequestExecuted
an Antragsteller, Bestätigungsmail PressReleaseChangeApplied (Spur A/D,
neuer abbestellbarer Typ press_release_corrected).

Außerdem:
- Re-Sync-Sperre + Sitemap-Invalidierung fest in depublish() verankert
  (Lücke im bezahlten Webhook-Pfad geschlossen)
- Öffentliche „Rechtliches"-Seite als zweistufige Triage: primär der
  Portal-Anmeldelink, Formular nur Fallback mit Identifizierungs-Hinweis;
  Store auf report/dsgvo/personal_rights gehärtet
- Panel-Button „Ändern/Melden" öffnet Anliegen-Modal (4 Spuren) statt
  des Web-Formulars
- Pressekontakt-Fallback für Legacy-Bestände (30k PMs ohne Verknüpfung):
  Detailseite + pressContactEmail() nutzen PM-Kontakt → Firmen-Kontakt →
  Firmendaten
- Korrektur-Gate entity-fest (Editor-Normalisierung zählt nicht als
  Änderung), toEditorHtml() in Admin-Edit + Korrektur-Panel,
  Wochenlimit-Hinweis in Text und Bremsen-Meldung

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 13:02:57 +00:00

101 lines
4.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
return [
/*
|--------------------------------------------------------------------------
| Rechtstext-Versionen (Übergangslösung bis zum legal_documents-System, E3)
|--------------------------------------------------------------------------
|
| Fallback für die aktuell veröffentlichte AGB-Fassung. Verbindliche
| Quelle ist seit 06.07. die legal_documents-Tabelle (E3-Versionierung,
| LegalDocument::current('agb') / LegalDocumentSeeder); diese Werte
| greifen nur, solange der Seeder noch nicht gelaufen ist.
|
*/
'agb_version' => '0.6',
'agb_effective_from' => '2026-07-03',
/*
|--------------------------------------------------------------------------
| Zentrale Rechts-E-Mail
|--------------------------------------------------------------------------
|
| Haupt-E-Mail für alle rechtlichen Anliegen (Impressum, Datenschutz,
| AGB, Meldeverfahren, Richtlinien) — auf allen drei Domains identisch.
| Support-/Redaktionskontakt bleibt je Brand konfigurierbar
| (config/domains.php, brand.contact_email).
|
*/
'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: Spur D — Kostenpflichtige Änderung (Obergrenze)
|--------------------------------------------------------------------------
|
| change_max_distance_percent: maximale relative Änderungsdistanz, bis zu
| der eine kostenpflichtige Änderung überhaupt buchbar ist. Darüber wäre
| die „Änderung" faktisch ein neuer Text bzw. eine verdeckte
| Depublizierung — dann bleibt nur Depublikation + Neuveröffentlichung.
|
*/
'change_max_distance_percent' => (int) env('LEGAL_CHANGE_MAX_DISTANCE_PERCENT', 50),
/*
|--------------------------------------------------------------------------
| 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),
];