ajoute le portail Laravel : connexion prof/élève, session unique, gestion de classe, salle d'attente

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Adam Belkacemi 2026-10-08 02:01:58 +02:00
parent aa31b6112f
commit 30e14b1c54
191 changed files with 25324 additions and 0 deletions

View file

@ -0,0 +1,36 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
/**
* Une seule session active par compte (étape 8). Si le jeton que porte cette
* session ne correspond plus à celui enregistré sur le compte, c'est qu'une
* connexion plus récente a eu lieu ailleurs : on déconnecte et on le dit.
*/
class VerifieSessionUnique
{
public function handle(Request $request, Closure $next, string $garde = 'web'): Response
{
$utilisateur = Auth::guard($garde)->user();
if ($utilisateur !== null) {
$cleSession = "jeton_session_{$garde}";
if (! $utilisateur->sessionEstEncoreValide($request->session()->get($cleSession))) {
Auth::guard($garde)->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect()->route('login')
->with('session_coupee', 'Vous avez été déconnecté : une nouvelle connexion a eu lieu sur votre compte.');
}
}
return $next($request);
}
}