fix: Caricamento routes quando il DB non esiste

This commit is contained in:
Maicol Battistini 2023-07-19 16:32:02 +02:00
parent 504a5521d0
commit ef92a05c73
No known key found for this signature in database
4 changed files with 17 additions and 9 deletions

View File

@ -18,6 +18,10 @@ class CheckConfigurationMiddleware
{ {
public function handle(Request $request, Closure $next): Response|SymfonyResponse 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 = [ $checks = [
'database' => static fn (): bool => ! empty(DB::connection()->getDatabaseName()) && DB::connection()->getPdo() instanceof PDO, 'database' => static fn (): bool => ! empty(DB::connection()->getDatabaseName()) && DB::connection()->getPdo() instanceof PDO,
'admin_user' => static fn (): bool => ! empty(User::exists()), 'admin_user' => static fn (): bool => ! empty(User::exists()),

View File

@ -3,18 +3,23 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Closure; use Closure;
use Illuminate\Database\QueryException;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class LocaleMiddleware class LocaleMiddleware
{ {
public function handle(Request $request, Closure $next): mixed public function handle(Request $request, Closure $next): mixed
{ {
app()->setLocale($request try {
->user() app()->setLocale($request
?->settings() ->user()
->get('locale', app()->getLocale()) ?->settings()
?? session('locale', app()->getLocale()) ->get('locale', app()->getLocale())
); ?? session('locale', app()->getLocale())
);
} catch (QueryException) {
// Do nothing, since DB is not configured yet
}
return $next($request); return $next($request);
} }

View File

@ -35,7 +35,7 @@
'user' => Route::currentRouteName() !== 'setup.index' && auth()->user(), 'user' => Route::currentRouteName() !== 'setup.index' && auth()->user(),
'VERSION' => trim(file_get_contents(base_path('VERSION'))), 'VERSION' => trim(file_get_contents(base_path('VERSION'))),
'REVISION' => trim(file_get_contents(base_path('REVISION'))), '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' => settings('date_format_long'),
'date_format_short' => settings('date_format_short'), 'date_format_short' => settings('date_format_short'),
'time_format' => settings('time_format'), 'time_format' => settings('time_format'),

View File

@ -16,8 +16,7 @@ use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;
*/ */
Route::name('setup.') Route::name('setup.')
->middleware(CheckConfigurationMiddleware::class) ->withoutMiddleware([EnsureFrontendRequestsAreStateful::class, CheckConfigurationMiddleware::class]) // TODO: Add configuration check middleware when setup is done
->withoutMiddleware([EnsureFrontendRequestsAreStateful::class])
->group(static function () { ->group(static function () {
Route::post('setup/test', [SetupController::class, 'testDatabase']) Route::post('setup/test', [SetupController::class, 'testDatabase'])
->name('test'); ->name('test');