mailwolt/routes/web.php

73 lines
2.9 KiB
PHP

<?php
use App\Http\Controllers\Api\TaskFeedController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\SignUpController;
use App\Http\Controllers\UI\Domain\DomainDnsController;
use App\Http\Controllers\UI\Mail\AliasController;
use App\Http\Controllers\UI\Mail\MailboxController;
use App\Http\Controllers\UI\Security\SecurityController;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return Auth::check()
? redirect()->route('ui.dashboard')
: redirect()->route('login');
});
Route::middleware('auth.user')->name('ui.')->group(function () {
#DASHBOARD ROUTE
Route::get('/dashboard', [\App\Http\Controllers\UI\DashboardController::class, 'index'])->name('dashboard');
#SYSTEM ROUTES
Route::prefix('system')->name('system.')->group(function () {
Route::get('/settings', [\App\Http\Controllers\UI\System\SettingsController::class, 'index'])->name('settings');
});
#SECURITY ROUTES
Route::prefix('security')->name('security.')->group(function () {
Route::get('/', [SecurityController::class, 'index'])->name('index');
Route::get('/ssl', [SecurityController::class, 'ssl'])->name('ssl');
Route::get('/fail2ban', [SecurityController::class, 'fail2ban'])->name('fail2ban');
Route::get('/rspamd', [SecurityController::class, 'rspamd'])->name('rspamd');
Route::get('/tls-ciphers', [SecurityController::class, 'tlsCiphers'])->name('tls');
Route::get('/audit-logs', [SecurityController::class, 'auditLogs'])->name('audit');
});
#DOMAIN ROUTES
Route::name('domains.')->group(function () {
Route::get('/domains', [DomainDnsController::class, 'index'])->name('index');
});
#MAIL ROUTES
Route::name('mail.')->group(function () {
Route::get('/mailboxes', [MailboxController::class, 'index'])->name('mailboxes.index');
Route::get('/aliases', [AliasController::class, 'index'])->name('aliases.index');
Route::get('/quarantine', function () {return 'Quarantäne';})->name('quarantine.index');
Route::get('/queues', function () {return 'Queues';})->name('queues.index');
});
#LOGOUT ROUTE
Route::post('/logout', [LoginController::class, 'logout'])->name('logout');
});
//Route::middleware(['auth'])
// ->get('/security/recovery-codes/download', [RecoveryCodeDownloadController::class, 'download'])
// ->name('security.recovery.download')
// ->middleware('signed'); // wichtig: signierte URL
Route::middleware(['web', 'auth']) // nutzt Session, kein Token nötig
->get('/ui/tasks/active', [TaskFeedController::class, 'active'])
->name('ui.tasks.active');
Route::middleware('guest.only')->group(function () {
Route::get('/login', [LoginController::class, 'show'])->name('login');
Route::get('/signup', [SignUpController::class, 'show'])->middleware('signup.open')->name('signup');
});