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:
parent
aa31b6112f
commit
30e14b1c54
191 changed files with 25324 additions and 0 deletions
31
portail/app/Models/Concerns/GereSessionUnique.php
Normal file
31
portail/app/Models/Concerns/GereSessionUnique.php
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models\Concerns;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
/**
|
||||
* Une seule session active par compte (étape 8) : la précédente est coupée
|
||||
* et son porteur en est averti à sa prochaine requête (voir
|
||||
* App\Http\Middleware\VerifieSessionUnique).
|
||||
*/
|
||||
trait GereSessionUnique
|
||||
{
|
||||
public function demarreNouvelleSession(): string
|
||||
{
|
||||
$jeton = Str::random(40);
|
||||
$this->forceFill(['jeton_session_actif' => $jeton])->save();
|
||||
|
||||
return $jeton;
|
||||
}
|
||||
|
||||
public function sessionEstEncoreValide(?string $jeton): bool
|
||||
{
|
||||
return $jeton !== null && $jeton === $this->jeton_session_actif;
|
||||
}
|
||||
|
||||
public function terminerSession(): void
|
||||
{
|
||||
$this->forceFill(['jeton_session_actif' => null])->save();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue