Launch-pflichtiger Compliance-Slice: öffentliche Anfrage zu einer PM speist eine
manuelle Admin-Queue (keine KI).
- Migration legal_requests + Model + Enums (Type: dsgvo/personal_rights/report,
Status: open/in_progress/resolved/rejected) + Factory.
- Öffentliches Formular /release/{slug}/rechtliches (LegalRequestController +
web/legal-request.blade.php): typ-abhängiger Hinweistext (Alpine), E-Mail bei
DSGVO/Persönlichkeitsrecht erforderlich, zwei versteckte Honeypot-Felder,
Rate-Limit + Bremse "1 offene Anfrage pro PM/Typ". Regeltexte als Entwurf mit
TODO für rechtliche Finalisierung markiert.
- Routen bewusst in eigener routes/legal.php (entkoppelt vom laufenden Web-Umbau),
host-agnostisch via domains.php eingebunden.
- Admin-Bereich "Recht & Compliance": Sidebar-Nav mit Offen-Zähler, Volt-Queue
index/show (in Bearbeitung/erledigt/abgelehnt/wieder öffnen + interne Notiz).
- Tests: je Typ, Honeypots (Dataset), Bremse, Admin-Queue + Status-Übergänge.
- Doku: Detailplan WS-3-Status + Deployment-Migrationsreihenfolge ergänzt.
Hinweis: Der "Melden"-/E&F-Button auf der PM-Detailseite (release-detail.blade.php)
wird mit dem separaten Web-Frontend-Commit verdrahtet; Ziel ist legal-request.create.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
<?php
|
||
|
||
use Flux\AssetManager;
|
||
use Illuminate\Support\Facades\Route;
|
||
|
||
$domainPortal = config('domains.domain_portal');
|
||
$domainPresseecho = config('domains.domain_presseecho');
|
||
$domainBusinessportal = config('domains.domain_businessportal');
|
||
|
||
// Portal-Bereich (lokal: pressekonto.test, live: pressekonto.de – via .env)
|
||
Route::domain($domainPortal)->group(function () {
|
||
// Auth-Routen laden
|
||
require __DIR__.'/auth.php';
|
||
|
||
// Admin-Routes laden
|
||
require __DIR__.'/admin.php';
|
||
|
||
// Customer-Portal laden
|
||
require __DIR__.'/customer.php';
|
||
|
||
// Display-API-Route (öffentlich zugänglich)
|
||
// Route::get('/api/display/config', [\App\Http\Controllers\Api\DisplayConfigController::class, 'index']);
|
||
|
||
// FluxUI Asset-Routen explizit für Portal-Domain registrieren
|
||
// (Notwendig weil Route-Cache die globalen Flux-Routen nicht für alle Domains enthält)
|
||
Route::get('/flux/flux.js', [AssetManager::class, 'fluxJs']);
|
||
Route::get('/flux/flux.min.js', [AssetManager::class, 'fluxMinJs']);
|
||
Route::get('/flux/editor.css', [AssetManager::class, 'editorCss']);
|
||
Route::get('/flux/editor.js', [AssetManager::class, 'editorJs']);
|
||
Route::get('/flux/editor.min.js', [AssetManager::class, 'editorMinJs']);
|
||
|
||
});
|
||
|
||
// API-Routen für alle Domains
|
||
/*Route::domain('api.pressekonto.test')->group(function () {
|
||
require __DIR__ . '/api.php';
|
||
});*/
|
||
|
||
require __DIR__.'/web.php';
|
||
|
||
// Öffentliche Recht-&-Compliance-Routen (WS-3), host-agnostisch wie web.php.
|
||
require __DIR__.'/legal.php';
|
||
|
||
// Theme 1 für presseecho.test
|
||
Route::domain($domainPresseecho)->group(function () {
|
||
// Web-Routes laden
|
||
});
|
||
|
||
// Theme 2 für businessportal24.test
|
||
Route::domain($domainBusinessportal)->group(function () {
|
||
// Web-Routes laden
|
||
});
|