caf7ad7fe2
- Wizard d'installation en 5 étapes (/setup) : prérequis PHP, base de données (PostgreSQL/MySQL avec test de connexion AJAX), paramètres app, compte admin, résultat — génère le .env, migre et crée l'administrateur - CheckInstallation middleware : redirige vers /setup si non installé, protège /setup si déjà installé ; storage/installed comme marqueur - Menu Administration : remplacé par le composant x-dropdown Breeze (même positionnement que le menu utilisateur — corrige le débordement en haut) - Logo navbar : adaptatif via h-full/py-1.5 (s'adapte à la hauteur de la barre) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
764 B
PHP
31 lines
764 B
PHP
<?php
|
|
|
|
namespace App\Http\Middleware;
|
|
|
|
use Closure;
|
|
use Illuminate\Http\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
class CheckInstallation
|
|
{
|
|
public function handle(Request $request, Closure $next): Response
|
|
{
|
|
$installed = file_exists(storage_path('installed'));
|
|
$onSetup = $request->is('setup') || $request->is('setup/*');
|
|
|
|
if (! $installed && ! $onSetup) {
|
|
// Laisser passer les health checks et réponses JSON
|
|
if ($request->is('up') || $request->expectsJson()) {
|
|
return $next($request);
|
|
}
|
|
return redirect('/setup');
|
|
}
|
|
|
|
if ($installed && $onSetup) {
|
|
return redirect('/');
|
|
}
|
|
|
|
return $next($request);
|
|
}
|
|
}
|