presseportale/config/legal.php
Kevin Adametz 075d0d931f legal/web: Zustimmungsgate je Dokumentversion (aus bis AGB 0.7), OG-Variante mit eingebranntem Bildnachweis, Nachweis in Teasern (Bildkennzeichnung Blöcke G und H)
- legal_document_acceptances (insert-only), LegalAcceptanceGate, Pflicht-Schalter im Einreichungs-Modal über den gemeinsamen Trait; API: GET/POST /api/v1/legal/acceptances, submit antwortet 428 mit den geforderten Fassungen; LEGAL_ACCEPTANCE_GATE
- ImageService: og-Variante (1200×630) mit halbtransparentem Balken und Inter SemiBold, regenerateOgVariant() für Korrekturen und Bestand; Fokuspunkt/Letterbox getestet
- Uploader brennt den Nachweis beim Upload ein, ImageCorrectionService baut die OG-Variante nach einer Korrektur neu; Artikelseite nutzt og für og:image
- Teaser: Nachweis in alt/title (Feed, Hero, Kategorie, Newsroom), Unterschrift am Hero-Bild; PressRelease::cardImageCredit()

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-22 10:12:17 +00:00

115 lines
4.7 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),
/*
|--------------------------------------------------------------------------
| Zustimmungsgate (Bildkennzeichnung Block G, Decision-Update E12)
|--------------------------------------------------------------------------
|
| acceptance_gate: vor jeder Einreichung müssen AGB und Richtlinien in
| der aktuellen Fassung aktiv angenommen sein (legal_document_acceptances).
| Erst mit AGB v0.7 einschalten (Deploy 3), damit Bestandskunden nicht
| zweimal klicken.
|
*/
'acceptance_gate' => (bool) env('LEGAL_ACCEPTANCE_GATE', false),
];