Teren-app/app/Http/Middleware/EnsureUserIsActive.php

43 lines
1.1 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
class EnsureUserIsActive
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
$user = Auth::user();
if ($user && ! $user->active) {
// Revoke all tokens for Sanctum
if (method_exists($user, 'tokens')) {
$user->tokens()->delete();
}
// Logout from web guard
Auth::guard('web')->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
if ($request->expectsJson()) {
return response()->json(['message' => 'Vaš račun je bil onemogočen.'], 403);
}
return redirect()->route('login')->with('error', 'Vaš račun je bil onemogočen.');
}
return $next($request);
}
}