diff --git a/app/Http/Middleware/CheckConfigurationMiddleware.php b/app/Http/Middleware/CheckConfigurationMiddleware.php index 3254ab933..c0ece5ab2 100644 --- a/app/Http/Middleware/CheckConfigurationMiddleware.php +++ b/app/Http/Middleware/CheckConfigurationMiddleware.php @@ -18,6 +18,10 @@ class CheckConfigurationMiddleware { public function handle(Request $request, Closure $next): Response|SymfonyResponse { + // Skip log viewer routes + if (str_starts_with($request->route()->getName(), 'log-viewer.')) { + return $next($request); + } $checks = [ 'database' => static fn (): bool => ! empty(DB::connection()->getDatabaseName()) && DB::connection()->getPdo() instanceof PDO, 'admin_user' => static fn (): bool => ! empty(User::exists()), diff --git a/app/Http/Middleware/LocaleMiddleware.php b/app/Http/Middleware/LocaleMiddleware.php index 24ea8811a..fd697d9c6 100644 --- a/app/Http/Middleware/LocaleMiddleware.php +++ b/app/Http/Middleware/LocaleMiddleware.php @@ -3,18 +3,23 @@ namespace App\Http\Middleware; use Closure; +use Illuminate\Database\QueryException; use Illuminate\Http\Request; class LocaleMiddleware { public function handle(Request $request, Closure $next): mixed { - app()->setLocale($request - ->user() - ?->settings() - ->get('locale', app()->getLocale()) - ?? session('locale', app()->getLocale()) - ); + try { + app()->setLocale($request + ->user() + ?->settings() + ->get('locale', app()->getLocale()) + ?? session('locale', app()->getLocale()) + ); + } catch (QueryException) { + // Do nothing, since DB is not configured yet + } return $next($request); } diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index bdc38de8e..883e44039 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -35,7 +35,7 @@ 'user' => Route::currentRouteName() !== 'setup.index' && auth()->user(), 'VERSION' => trim(file_get_contents(base_path('VERSION'))), 'REVISION' => trim(file_get_contents(base_path('REVISION'))), - 'settings' => (!empty(DB::connection()->getDatabaseName()) && DB::connection()->getPdo() instanceof PDO) ? [ + 'settings' => !str_starts_with(Route::getCurrentRoute()?->getName() ?? '', 'setup.') ? [ 'date_format' => settings('date_format_long'), 'date_format_short' => settings('date_format_short'), 'time_format' => settings('time_format'), diff --git a/routes/api.php b/routes/api.php index 1e79aa1bd..4af318ada 100644 --- a/routes/api.php +++ b/routes/api.php @@ -16,8 +16,7 @@ use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful; */ Route::name('setup.') - ->middleware(CheckConfigurationMiddleware::class) - ->withoutMiddleware([EnsureFrontendRequestsAreStateful::class]) + ->withoutMiddleware([EnsureFrontendRequestsAreStateful::class, CheckConfigurationMiddleware::class]) // TODO: Add configuration check middleware when setup is done ->group(static function () { Route::post('setup/test', [SetupController::class, 'testDatabase']) ->name('test');