feat(transport) : permissions carriers + sidebar (ERP-153)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m50s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m36s

Socle RBAC du module Transport (M4 § 5) :
- TransportModule::permissions() declare transport.carriers.{view,manage,archive}
- RbacSeeder::MATRIX (§ 5.2) : Bureau (view+manage), Commerciale (view) ;
  Compta/Usine aucun acces ; archive admin seul
- config/sidebar.php : section Transport + item /carriers (gate transport.carriers.view)
- i18n sidebar.transport.{section,carriers}
- 3 miroirs RBAC alignes : sidebar.php, personas.ts (user-full), SeedE2ECommand.php
- TransportModuleTest : garde-fou sur le jeu de permissions
This commit is contained in:
Matthieu
2026-06-15 18:11:15 +02:00
parent 8b8fb8c2aa
commit e607cccf08
7 changed files with 110 additions and 9 deletions
+11 -6
View File
@@ -13,17 +13,22 @@ final class TransportModule
/**
* Liste declarative des permissions RBAC exposees par le module Transport.
*
* Vide a ce stade : le module ne porte que des referentiels externes
* synchronises par commandes console (codes IDTF - ERP-149, transporteurs
* QUALIMAT - ERP-39), sans ecran ni action protegee. Les permissions seront
* ajoutees quand une page de consultation sera exposee.
* Socle du repertoire transporteurs (M4 § 5.1, ERP-153) :
* - `view` : consultation de la liste / fiche transporteur ;
* - `manage` : creation / modification (hors archivage) ;
* - `archive` : archivage / restauration (admin seul, cf. matrice § 5.2).
*
* Consommee par `app:sync-permissions` (un tableau vide est valide).
* Consommee par `app:sync-permissions`. Matrice role -> permissions dans
* `RbacSeeder::MATRIX` (§ 5.2).
*
* @return array<int, array{code: string, label: string}>
*/
public static function permissions(): array
{
return [];
return [
['code' => 'transport.carriers.view', 'label' => 'Voir les transporteurs'],
['code' => 'transport.carriers.manage', 'label' => 'Créer / modifier les transporteurs'],
['code' => 'transport.carriers.archive', 'label' => 'Archiver / restaurer un transporteur'],
];
}
}