L'élève saisit le code de classe et son prénom, le prof accepte, l'élève voit une seule fois son identifiant et son code. Aucun e-mail. Le prof peut aussi régénérer les fiches de plusieurs élèves d'un coup. Procédure pour prouver la copie de la clé des sauvegardes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
52 lines
1.3 KiB
PHP
52 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Prunable;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
|
|
/**
|
|
* Un élève demande à rejoindre une classe avec son code (façon n°1 du
|
|
* CLAUDE.md) ; le prof accepte ou refuse. Données minimales : prénom, nom
|
|
* facultatif. Supprimée dès que l'élève a vu son code, ou au bout d'une heure.
|
|
*/
|
|
class DemandeInscription extends Model
|
|
{
|
|
use Prunable;
|
|
|
|
public const EN_ATTENTE = 'en_attente';
|
|
|
|
public const ACCEPTEE = 'acceptee';
|
|
|
|
public const REFUSEE = 'refusee';
|
|
|
|
protected $table = 'demandes_inscription';
|
|
|
|
protected $fillable = ['classe_id', 'prenom', 'nom', 'jeton_empreinte', 'statut'];
|
|
|
|
protected $casts = [
|
|
'code_secret_chiffre' => 'encrypted',
|
|
];
|
|
|
|
public function classe(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Classe::class);
|
|
}
|
|
|
|
public function eleve(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Eleve::class);
|
|
}
|
|
|
|
public static function empreinte(string $jeton): string
|
|
{
|
|
return hash('sha256', $jeton);
|
|
}
|
|
|
|
public function prunable(): Builder
|
|
{
|
|
return static::where('created_at', '<', now()->subHour());
|
|
}
|
|
}
|