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
{
// 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()),

View File

@ -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);
}

View File

@ -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'),

View File

@ -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');