presseportale/routes/legal.php
Kevin Adametz 8c0bf00604 Recht: Online-Widerruf ohne Login (gesetzlicher Widerrufsbutton) - Backend
POST /widerruf (host-agnostisch, throttled, Honeypot, eigener
withdrawal-Error-Bag): persistiert nur Zuordnungsdaten (Name, E-Mail,
optionale Bestellnummer - KEIN Grund, darf nicht verlangt werden) und
versendet sofort die gesetzlich vorgeschriebene automatische
Eingangsbestaetigung mit Zeitstempel an den Verbraucher plus eine
interne Benachrichtigung an die Brand-Kontaktadresse des Hosts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:03:37 +00:00

33 lines
1.3 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
use App\Http\Controllers\LegalRequestController;
use App\Http\Controllers\Web\WithdrawalController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Recht & Compliance – öffentliche Routen (WS-3)
|--------------------------------------------------------------------------
|
| Öffentliche Rechts-/Compliance-Anfrage zu einer Pressemitteilung: DSGVO-
| Anonymisierung (E), Persönlichkeitsrecht (F) und Meldung. Ohne Login; speist
| die Admin-Queue „Recht & Compliance". Bewusst in einer eigenen Datei (nicht in
| web.php) gehalten, damit der Compliance-Slice unabhängig vom laufenden
| Web-Frontend-Umbau bleibt. Host-agnostisch eingebunden (siehe domains.php) –
| der Controller leitet das Portal aus dem Host ab.
|
*/
Route::get('/release/{slug}/rechtliches', [LegalRequestController::class, 'create'])
->name('legal-request.create');
Route::post('/release/{slug}/rechtliches', [LegalRequestController::class, 'store'])
->middleware('throttle:10,1')
->name('legal-request.store');
// Gesetzlicher Widerrufsbutton: Online-Widerruf ohne Login (zweistufig im
// Frontend). Host-agnostisch — der Controller ordnet den Betreiber-Empfänger
// über den Host zu.
Route::post('/widerruf', WithdrawalController::class)
->middleware('throttle:10,1')
->name('widerruf.store');