2018-05-04 15:02:51 +02:00
|
|
|
<?php
|
|
|
|
|
|
2024-03-12 22:39:16 -04:00
|
|
|
namespace App\Http\Middleware;
|
2018-05-04 15:02:51 +02:00
|
|
|
|
2025-09-08 13:12:33 -04:00
|
|
|
use App\Models\Server;
|
2025-09-24 13:34:19 +02:00
|
|
|
use Closure;
|
2018-05-26 11:00:28 -07:00
|
|
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
2025-09-24 13:34:19 +02:00
|
|
|
use Illuminate\Http\Request;
|
2018-05-04 15:02:51 +02:00
|
|
|
|
|
|
|
|
class MaintenanceMiddleware
|
|
|
|
|
{
|
2018-05-26 11:00:28 -07:00
|
|
|
/**
|
|
|
|
|
* MaintenanceMiddleware constructor.
|
|
|
|
|
*/
|
2024-11-22 09:27:57 +01:00
|
|
|
public function __construct(private ResponseFactory $response) {}
|
2018-05-26 11:00:28 -07:00
|
|
|
|
2018-05-04 15:02:51 +02:00
|
|
|
/**
|
|
|
|
|
* Handle an incoming request.
|
|
|
|
|
*/
|
2025-09-08 13:12:33 -04:00
|
|
|
public function handle(Request $request, Closure $next): mixed
|
2018-05-04 15:02:51 +02:00
|
|
|
{
|
2025-09-08 13:12:33 -04:00
|
|
|
/** @var Server $server */
|
2018-05-04 15:02:51 +02:00
|
|
|
$server = $request->attributes->get('server');
|
2018-05-26 11:00:28 -07:00
|
|
|
$node = $server->getRelation('node');
|
2018-05-04 15:02:51 +02:00
|
|
|
|
2018-05-31 16:34:35 +02:00
|
|
|
if ($node->maintenance_mode) {
|
2018-05-26 11:00:28 -07:00
|
|
|
return $this->response->view('errors.maintenance');
|
2018-05-04 15:02:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $next($request);
|
|
|
|
|
}
|
|
|
|
|
}
|