corrige le code de classe (caractères ambigus) et fige l'image Uptime Kuma par digest

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Adam Belkacemi 2026-10-12 21:50:53 +02:00
parent 97c04f1ad6
commit f899aac48a
11 changed files with 92 additions and 15 deletions

View file

@ -2,13 +2,13 @@
namespace App\Models;
use App\Support\CodeLisible;
use Carbon\Carbon;
use Database\Factories\ClasseFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Str;
class Classe extends Model
{
@ -31,7 +31,7 @@ class Classe extends Model
public static function genererCodeUnique(): string
{
do {
$code = Str::upper(Str::random(6));
$code = CodeLisible::genere(6);
} while (static::where('code_classe', $code)->exists());
return $code;

View file

@ -4,6 +4,7 @@ namespace App\Services;
use App\Models\Classe;
use App\Models\Eleve;
use App\Support\CodeLisible;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
@ -13,9 +14,6 @@ use Illuminate\Support\Str;
*/
class GenerateurCompteEleve
{
// Sans 0/O ni 1/I/L, pour qu'un élève ne confonde pas à la lecture.
private const ALPHABET_CODE = 'ABCDEFGHJKMNPQRSTUVWXYZ23456789';
public function genererIdentifiant(string $prenom, ?string $nom): string
{
$base = Str::slug($prenom, '');
@ -35,12 +33,7 @@ class GenerateurCompteEleve
public function genererCodeSecret(): string
{
$code = '';
for ($i = 0; $i < 6; $i++) {
$code .= self::ALPHABET_CODE[random_int(0, strlen(self::ALPHABET_CODE) - 1)];
}
return $code;
return CodeLisible::genere(6);
}
/**

View file

@ -0,0 +1,26 @@
<?php
namespace App\Support;
/**
* Codes courts qu'un élève doit pouvoir lire et retaper sans erreur :
* sans 0/O ni 1/I/L, qui se confondent facilement à l'écran comme à voix
* haute. Utilisé pour le code secret de l'élève (GenerateurCompteEleve) et,
* depuis le 2026-10-12, pour le code de classe (Classe) — qui utilisait
* jusque-là un alphabet différent et ambigu (dette notée le 2026-10-09).
*/
final class CodeLisible
{
public const ALPHABET = 'ABCDEFGHJKMNPQRSTUVWXYZ23456789';
public static function genere(int $longueur): string
{
$code = '';
for ($i = 0; $i < $longueur; $i++) {
$code .= self::ALPHABET[random_int(0, strlen(self::ALPHABET) - 1)];
}
return $code;
}
}