56 lines
2.2 KiB
PHP
56 lines
2.2 KiB
PHP
<?php
|
|
|
|
use Illuminate\Foundation\Application;
|
|
use Illuminate\Foundation\Configuration\Exceptions;
|
|
use Illuminate\Foundation\Configuration\Middleware;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
return Application::configure(basePath: dirname(__DIR__))
|
|
->withRouting(
|
|
api: __DIR__ . '/../routes/api.php',
|
|
channels: __DIR__ . '/../routes/channels.php',
|
|
commands: __DIR__ . '/../routes/console.php',
|
|
health: '/up',
|
|
using: function () {
|
|
// Webmail must be registered BEFORE web.php so its domain constraint
|
|
// takes priority over the catch-all Route::get('/') in web.php.
|
|
$wmHost = config('mailwolt.domain.webmail_host');
|
|
|
|
if ($wmHost) {
|
|
Route::middleware('web')
|
|
->domain($wmHost)
|
|
->name('ui.webmail.')
|
|
->group(base_path('routes/webmail.php'));
|
|
|
|
// Path-based fallback mit eigenem Namen-Prefix — kein Konflikt mit web.php 'login'
|
|
Route::middleware('web')
|
|
->prefix('webmail')
|
|
->name('webmail.')
|
|
->group(base_path('routes/webmail.php'));
|
|
} else {
|
|
Route::middleware('web')
|
|
->prefix('webmail')
|
|
->name('ui.webmail.')
|
|
->group(base_path('routes/webmail.php'));
|
|
}
|
|
|
|
Route::middleware('web')->group(base_path('routes/web.php'));
|
|
},
|
|
)
|
|
->withMiddleware(function (Middleware $middleware): void {
|
|
$middleware->trustProxies(at: '*');
|
|
$middleware->prependToGroup('web', \App\Http\Middleware\ValidateHost::class);
|
|
$middleware->alias([
|
|
'ensure.setup' => \App\Http\Middleware\EnsureSetupCompleted::class,
|
|
'signup.open' => \App\Http\Middleware\SignupOpen::class,
|
|
'auth.user' => \App\Http\Middleware\AuthenticatedMiddleware::class,
|
|
'guest.only' => \App\Http\Middleware\GuestOnlyMiddleware::class,
|
|
'role' => \App\Http\Middleware\RequireRole::class,
|
|
'require2fa' => \App\Http\Middleware\Require2FA::class,
|
|
|
|
]);
|
|
})
|
|
->withExceptions(function (Exceptions $exceptions): void {
|
|
//
|
|
})->create();
|