From 2ef41a4718f5a2ebd93ccee5b5b7eb333968a4af Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Fri, 10 Jul 2026 10:11:28 +0000 Subject: [PATCH] R2.5: legal-request-Hinweistexte final (Wortlaut aus Meldeverfahren v0.1) - Meldung/DSGVO/Persoenlichkeitsrecht auf die am 06.07. freigegebenen /melden-Texte gezogen: kostenlose manuelle Pruefung, unverzuegliche Eingangsbestaetigung mit Vorgangsnummer (sofern E-Mail), Entscheidung mit Begruendung; DSGVO ohne pauschale 30-Tage-Zusage, stattdessen Bestaetigungslink/Nachweis wie im Meldeverfahren - ENTWURF-TODO entfernt, Querverweis auf /melden ergaenzt - Render-Test erweitert (Vorgangsnummer, kostenlos, melden-Link) Co-Authored-By: Claude Fable 5 --- dev/release/entwicklungsplan-release.md | 4 +- resources/views/web/legal-request.blade.php | 63 ++++++++++++--------- tests/Feature/LegalRequestTest.php | 7 ++- 3 files changed, 45 insertions(+), 29 deletions(-) diff --git a/dev/release/entwicklungsplan-release.md b/dev/release/entwicklungsplan-release.md index 4e9578b3..90cce417 100644 --- a/dev/release/entwicklungsplan-release.md +++ b/dev/release/entwicklungsplan-release.md @@ -45,7 +45,7 @@ R2.2+R2.3 erledigt: Hub-Landing komplett ueberarbeitet (datengetriebenes Tarif-G 2. **R4.3 Dedup** (optional, „nur wenn Zeit") — Release-Card vereinheitlichen, Industrie-Icon-Map → Config, Inline-SVGs → Icon-Set. Kein Blocker. 3. **R6.5 optional:** die drei `user_filter_presets`-Migrations zusammenfuehren (Hygiene vor Go-Live). -**Wartet auf Dich / extern (nicht durch mich abschliessbar):** R6.5 Branch push + merge + Release-Tag (Dein Go) · R1.2 Stripe-Live · R1.4 Preisfreigabe · R1.5 Refund-Entscheidung · R2.5 legal-request-Texte · R5.4 Favicons · R6.3 Staging-Rehearsal · R6.4 Go-Live-Kette · Postfach `info@pressekonto.com` · anwaltliche Freigabe. +**Wartet auf Dich / extern (nicht durch mich abschliessbar):** R6.5 Branch merge + Release-Tag (Dein Go; Push ist erfolgt) · R1.2 Stripe-Live · R1.4 Preisfreigabe · R1.5 Refund-Entscheidung · (~~R2.5 legal-request-Texte~~ erledigt 10.07., Wortlaut aus freigegebenem Meldeverfahren) · R5.4 Favicons · R6.3 Staging-Rehearsal · R6.4 Go-Live-Kette · Postfach `info@pressekonto.com` · anwaltliche Freigabe. **Bewusst nachgelagert (nicht Teil dieses Release):** Sentry/APM · User-Panel-Vollflow · Newsletter-DOI · EN-Rechtstexte · T11-DSA-Queue-Ausbau. @@ -106,7 +106,7 @@ R2.2+R2.3 erledigt: Hub-Landing komplett ueberarbeitet (datengetriebenes Tarif-G - [x] **R2.2 Hub-Pricing datengetrieben** — `pressekonto.blade.php:401/469/538`: 3 hartcodierte Pricing-`
`s (0 €/49 €/149 €) → `` (iteriert `Plan::active()`, wird von beiden Spokes schon genutzt). Beseitigt Drift-Risiko zum Plan-Katalog. *(= alt Phase 6.1)* - [x] **R2.3 Tote `href="#"`-Links in Live-Seiten fixen** — pressekonto (16×, u. a. Kundenlogos + Support-/Datenschutz-Links), release-detail (3×, Share-Aktionen), `hub/top-utility-bar` (3×), `events-week`/`highlight-card`. Echte Ziele setzen oder Elemente entfernen. - [x] **R2.4 SEO-Basics** — Erledigt 03.07.: Host-aware `sitemap.xml` (Hub: Landing + Rechts-/Info-Seiten; Spokes: zusätzlich Kategorien, öffentliche Newsrooms, alle im Archiv sichtbaren PMs des Portals; 1h-Cache pro Host). `robots.txt` jetzt dynamische Route mit Sitemap-Verweis + Disallow (/admin, /login, /register, Suche) — die statische `public/robots.txt` wurde entfernt (**Deploy-Hinweis:** nicht wieder anlegen, sie würde die Route verschatten). karriere/partner/presse/team: Brand pro Request via `WebPortalContext` (statt hartcodiert „Business Portal 24") + Meta-Descriptions; bp24-Home auf config-getriebenes meta_title/meta_description-Muster vereinheitlicht. Sitemap listet bewusst nur die de-Edition (en-Entscheidung offen, s. Rechtstexte-Doku O3) und lässt Suche + Marketing-Platzhalterseiten (R3.2) draußen. Tests: `SitemapRobotsTest`. -- [ ] **R2.5 legal-request-Hinweistexte finalisieren** — `legal-request.blade.php:8/65`: Texte je Anfragetyp als „ENTWURF" markiert. **[EXTERN: finale Texte]** +- [x] **R2.5 legal-request-Hinweistexte finalisieren** — Erledigt 10.07.: Die drei Hinweistexte (Meldung/DSGVO/Persönlichkeitsrecht) aus dem am 06.07. inhaltlich freigegebenen Meldeverfahren v0.1 (`static.report.*`) abgeleitet und auf den echten Flow gebracht (Vorgangsnummer M-{id}, unverzügliche Eingangsbestätigung nach DSA Art. 16 Abs. 4 sofern E-Mail angegeben, kostenlose manuelle Prüfung, DSGVO ohne pauschale 30-Tage-Zusage, Querverweis auf /melden). ENTWURF-Marker entfernt; Render-Test erweitert (`LegalRequestTest`). Die ausstehende anwaltliche Freigabe des Rechtstexte-Pakets [EXTERN] deckt diese Texte mit ab. --- diff --git a/resources/views/web/legal-request.blade.php b/resources/views/web/legal-request.blade.php index f8f163c0..51c7a714 100644 --- a/resources/views/web/legal-request.blade.php +++ b/resources/views/web/legal-request.blade.php @@ -5,18 +5,13 @@ @section('content') {{-- - TODO (Inhalt/Recht): Die untenstehenden Hinweistexte je Anfragetyp sind ein - erster ENTWURF und müssen noch fachlich/rechtlich finalisiert werden. Hier - gehört für jeden Typ konkret hinein, WIE der jeweilige Vorgang funktioniert: - - DSGVO (E): Rechtsgrundlage (Art. 17 DSGVO), welche Daten betroffen sein - können, ob/wie ein Identitätsnachweis nötig ist, Bearbeitungs- - frist (i.d.R. 30 Tage), was nach Einreichung passiert. - - Persönlichkeitsrecht (F): welche Inhalte beanstandet werden können - (unwahre Tatsachen, Bildrechte …), Nachweise, Ablauf der Prüfung, - mögliche Folgen (Anpassung/Entfernung). - - Meldung: welche Gründe sinnvoll sind (Spam, irreführend, rechtswidrig), - dass jede Meldung manuell geprüft wird, E-Mail optional. - Diese Regeln mit Recht/Legal abstimmen, bevor sie live gehen. + Hinweistexte je Anfragetyp (R2.5, final 10.07.2026): Wortlaut folgt dem am + 06.07. inhaltlich freigegebenen Meldeverfahren v0.1 (/melden bzw. + lang/de/static.php static.report.*) und dem tatsächlichen Flow + (Vorgangsnummer M-{id}, unverzügliche Eingangsbestätigung nach DSA Art. 16 + Abs. 4 sofern E-Mail angegeben, kostenlose manuelle Prüfung). Die noch + ausstehende anwaltliche Freigabe des Rechtstexte-Pakets [EXTERN] umfasst + auch diese Texte. --}}
- {{-- Hinweistext je Anfragetyp (ENTWURF – siehe TODO oben). --}} + {{-- Hinweistext je Anfragetyp (Wortlaut: siehe Kommentar am Seitenanfang). --}}
Meldung: - Melden Sie diese Pressemitteilung, wenn Sie sie für Spam, irreführend oder - rechtswidrig halten. Bitte beschreiben Sie den Grund konkret. Jede Meldung - wird manuell geprüft. Eine E-Mail-Adresse ist optional, hilft aber bei - Rückfragen. + Melden Sie diese Pressemitteilung, wenn Sie sie für rechtswidrig halten + oder sie Ihre Rechte verletzt — z. B. unwahre Tatsachenbehauptungen, + Urheberrechts- oder Markenverletzungen, irreführende Inhalte oder Spam. + Bitte benennen Sie konkret, welche Inhalte betroffen sind und warum. + Jede Meldung wird von unserem Team manuell geprüft; die Meldung ist + kostenlos. Wenn Sie eine E-Mail-Adresse angeben, erhalten Sie unverzüglich + eine Eingangsbestätigung mit Vorgangsnummer und anschließend unsere + Entscheidung mit Begründung.
Datenschutz / DSGVO: - Sie können die Löschung oder Anonymisierung Ihrer personenbezogenen Daten - verlangen (Art. 17 DSGVO). Bitte geben Sie an, welche Angaben Sie betreffen. - Zur Rückmeldung und ggf. Identitätsprüfung benötigen wir Ihre E-Mail-Adresse. - Die Bearbeitung erfolgt in der Regel innerhalb von 30 Tagen. + Als natürliche Person können Sie die Entfernung, Ersetzung oder + Anonymisierung Ihrer persönlichen Daten in dieser Pressemitteilung + verlangen (Art. 17 DSGVO) — zum Beispiel Name, Telefonnummer oder + E-Mail-Adresse. Bitte geben Sie an, welche Angaben Sie betreffen. Die + Prüfung und Bearbeitung ist für Sie kostenlos. Zur Prüfung Ihrer + Berechtigung benötigen wir Ihre E-Mail-Adresse; in der Regel senden wir + einen Bestätigungslink an die betroffene Adresse, andernfalls können wir + einen geeigneten Identitäts- oder Berechtigungsnachweis verlangen. Sie + erhalten unverzüglich eine Eingangsbestätigung mit Vorgangsnummer. Die + Pressemitteilung selbst bleibt nach der Entfernung Ihrer Daten + grundsätzlich bestehen.
Persönlichkeitsrecht: - Wenn diese Mitteilung Ihre Persönlichkeitsrechte verletzt (z. B. unwahre - Tatsachenbehauptungen, Bildrechte), schildern Sie bitte konkret, welche - Inhalte betroffen sind. Für Rückfragen benötigen wir Ihre E-Mail-Adresse. - Bei berechtigten Ansprüchen wird der Inhalt geprüft und ggf. angepasst oder - entfernt. + Wenn diese Mitteilung Ihre Persönlichkeitsrechte verletzt — z. B. + durch unwahre Tatsachenbehauptungen oder die Verletzung von Bild- oder + Namensrechten —, schildern Sie bitte konkret, welche Inhalte betroffen + sind und warum. Für die Eingangsbestätigung mit Vorgangsnummer und + Rückfragen benötigen wir Ihre E-Mail-Adresse. Wir prüfen Ihre Anfrage + sorgfältig und zeitnah und teilen Ihnen unsere Entscheidung mit + Begründung mit; bei berechtigten Beanstandungen wird der Inhalt + angepasst, gesperrt oder entfernt. Die Prüfung ist kostenlos.
@@ -139,6 +148,8 @@ Hinweis: Diese Angaben werden ausschließlich zur Bearbeitung Ihrer Anfrage verarbeitet. Weitere Informationen in der Datenschutzerklärung. + Einzelheiten zum Ablauf aller Meldewege finden Sie im + Meldeverfahren.

@endsection diff --git a/tests/Feature/LegalRequestTest.php b/tests/Feature/LegalRequestTest.php index 4b10a730..700696c2 100644 --- a/tests/Feature/LegalRequestTest.php +++ b/tests/Feature/LegalRequestTest.php @@ -36,9 +36,14 @@ test('the legal request form renders with per-type hints and hidden honeypots', $this->get(route('legal-request.create', ['slug' => $release->slug, 'type' => 'report'])) ->assertOk() ->assertSee($release->title) - // Hinweistexte je Typ sind serverseitig vorhanden (Umschaltung via Alpine). + // Hinweistexte je Typ sind serverseitig vorhanden (Umschaltung via Alpine); + // finaler Wortlaut folgt dem Meldeverfahren v0.1 (R2.5, 10.07.2026). ->assertSee('Art. 17 DSGVO') ->assertSee('Persönlichkeitsrecht') + ->assertSee('Eingangsbestätigung mit Vorgangsnummer') + ->assertSee('kostenlos') + // Querverweis auf die Meldeverfahren-Übersicht. + ->assertSee(route('melden')) // Versteckte Honeypot-Felder im DOM. ->assertSee('name="website"', false) ->assertSee('name="homepage"', false);