fix(core) : RBAC Task 6 polish - descriptions des roles systeme coherentes

ensureSystemRole() recopie desormais la description depuis la migration
RBAC pour que les chemins prod (migration) et dev (fixtures) produisent
un etat identique.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Matthieu
2026-04-14 17:15:23 +02:00
parent aafe08b6ad
commit 0a496f34e0

View File

@@ -30,8 +30,18 @@ class AppFixtures extends Fixture
public function load(ObjectManager $manager): void
{
$adminRole = $this->ensureSystemRole($manager, SystemRoles::ADMIN_CODE, 'Administrateur');
$userRole = $this->ensureSystemRole($manager, SystemRoles::USER_CODE, 'Utilisateur');
$adminRole = $this->ensureSystemRole(
$manager,
SystemRoles::ADMIN_CODE,
'Administrateur',
'Role administrateur - bypass complet via is_admin',
);
$userRole = $this->ensureSystemRole(
$manager,
SystemRoles::USER_CODE,
'Utilisateur',
'Role de base sans permission specifique',
);
$admin = new User();
$admin->setUsername('admin');
@@ -58,16 +68,24 @@ class AppFixtures extends Fixture
/**
* Retourne le role systeme correspondant au code donne, en le creant
* s'il n'existe pas encore (le purger Doctrine a pu vider la table role).
*
* La description est recopiee depuis la migration RBAC pour que les
* deux chemins (migration prod, fixtures dev) produisent un etat
* identique.
*/
private function ensureSystemRole(ObjectManager $manager, string $code, string $label): Role
{
private function ensureSystemRole(
ObjectManager $manager,
string $code,
string $label,
string $description,
): Role {
$role = $this->roleRepository->findByCode($code);
if (null !== $role) {
return $role;
}
$role = new Role($code, $label, isSystem: true);
$role = new Role($code, $label, isSystem: true, description: $description);
$manager->persist($role);
return $role;