mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-03 06:56:15 +00:00
Merge (#127)
This commit is contained in:
30
app/Http/Middleware/HandleSSHErrors.php
Normal file
30
app/Http/Middleware/HandleSSHErrors.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use App\Exceptions\SSHCommandError;
|
||||
use App\Exceptions\SSHConnectionError;
|
||||
use App\Facades\Toast;
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class HandleSSHErrors
|
||||
{
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
$res = $next($request);
|
||||
if ($res->exception) {
|
||||
if ($res->exception instanceof SSHConnectionError || $res->exception instanceof SSHCommandError) {
|
||||
Toast::error($res->exception->getMessage());
|
||||
|
||||
if ($request->hasHeader('HX-Request')) {
|
||||
return htmx()->back();
|
||||
}
|
||||
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
32
app/Http/Middleware/SelectCurrentProject.php
Normal file
32
app/Http/Middleware/SelectCurrentProject.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use App\Models\User;
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class SelectCurrentProject
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
|
||||
*/
|
||||
public function handle(Request $request, Closure $next): Response
|
||||
{
|
||||
/** @var Server $server */
|
||||
$server = $request->route('server');
|
||||
|
||||
/** @var User $user */
|
||||
$user = $request->user();
|
||||
|
||||
if ($server->project_id != $user->current_project_id) {
|
||||
$user->current_project_id = $server->project_id;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use App\Enums\ServerStatus;
|
||||
use App\Facades\Toast;
|
||||
use App\Models\Server;
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
@ -13,7 +15,9 @@ public function handle(Request $request, Closure $next)
|
||||
/** @var Server $server */
|
||||
$server = $request->route('server');
|
||||
|
||||
if (! $server->isReady()) {
|
||||
if ($server->status !== ServerStatus::READY) {
|
||||
Toast::error('Server is not ready yet');
|
||||
|
||||
return redirect()->route('servers.show', ['server' => $server]);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user