feat(technique) : câbler le RBAC technique.providers.* (ERP-138) #98

Closed
matthieu wants to merge 1 commits from feature/ERP-138-rbac-technique-providers into feature/ERP-137-export-xlsx-prestataires
Owner

Câble les permissions du module Technique dans toutes les sources RBAC (règle ABSOLUE n°8, même commit).

Sources alignées

  • RbacSeeder::MATRIX : bureau/compta/commerciale reçoivent technique.providers.* (matrice § 2.9) + sites.bypass_scope (visibilité multi-site § 2.13) ; usine = technique.providers.view seul, sans bypass (cloisonnée à son site).
  • config/sidebar.php : nouvelle section Technique + item Répertoire prestataires (/providers, module technique, permission technique.providers.view).
  • personas.ts + SeedE2ECommand.php : 5 perms technique.providers.* sur le persona user-full (porte déjà sites.bypass_scope) — pas de nouveau persona (règle n°7).
  • i18n fr.json : clés sidebar.technique.section / sidebar.technique.providers.

Les 5 permissions étaient déjà déclarées dans TechniqueModule::permissions() (ticket 1.1) → sync-permissions : 0 ajout.

Matrice § 2.9

Permission Admin Bureau Compta Commerciale Usine
view (cloisonné site)
manage
accounting.view/manage
archive

Tests

  • Nouveau ProviderRBACMatrixTest (miroir SupplierRBACMatrixTest), seedé via app:seed-rbac : 8 tests, 65 assertions. Différence M3 : Usine en lecture seule cloisonnée (détail hors site → 404).
  • make test → 655 OK · make nuxt-test → 384 OK · php-cs-fixer propre.

Stack : à merger après ERP-137 (base = feature/ERP-137-export-xlsx-prestataires).

Câble les permissions du module Technique dans toutes les sources RBAC (règle ABSOLUE n°8, même commit). ## Sources alignées - **`RbacSeeder::MATRIX`** : bureau/compta/commerciale reçoivent `technique.providers.*` (matrice § 2.9) + `sites.bypass_scope` (visibilité multi-site § 2.13) ; usine = `technique.providers.view` seul, **sans** bypass (cloisonnée à son site). - **`config/sidebar.php`** : nouvelle section Technique + item Répertoire prestataires (`/providers`, module `technique`, permission `technique.providers.view`). - **`personas.ts` + `SeedE2ECommand.php`** : 5 perms `technique.providers.*` sur le persona `user-full` (porte déjà `sites.bypass_scope`) — pas de nouveau persona (règle n°7). - **i18n `fr.json`** : clés `sidebar.technique.section` / `sidebar.technique.providers`. > Les 5 permissions étaient déjà déclarées dans `TechniqueModule::permissions()` (ticket 1.1) → `sync-permissions` : 0 ajout. ## Matrice § 2.9 | Permission | Admin | Bureau | Compta | Commerciale | Usine | |---|---|---|---|---|---| | view | ✅ | ✅ | ✅ | ✅ | ✅ (cloisonné site) | | manage | ✅ | ✅ | ❌ | ✅ | ❌ | | accounting.view/manage | ✅ | ❌ | ✅ | ❌ | ❌ | | archive | ✅ | ❌ | ❌ | ❌ | ❌ | ## Tests - Nouveau `ProviderRBACMatrixTest` (miroir `SupplierRBACMatrixTest`), seedé via `app:seed-rbac` : **8 tests, 65 assertions**. Différence M3 : Usine en lecture seule cloisonnée (détail hors site → 404). - `make test` → 655 OK · `make nuxt-test` → 384 OK · php-cs-fixer propre. > Stack : à merger après ERP-137 (base = `feature/ERP-137-export-xlsx-prestataires`).
matthieu added 1 commit 2026-06-12 12:56:24 +00:00
Câble les permissions du module Technique dans toutes les sources RBAC (règle
ABSOLUE n°8, dans le même commit) :

- RbacSeeder::MATRIX : bureau/compta/commerciale reçoivent technique.providers.*
  selon la matrice § 2.9 + sites.bypass_scope (visibilité multi-site, § 2.13) ;
  usine = technique.providers.view seul, SANS bypass (cloisonnée à son site).
- config/sidebar.php : nouvelle section Technique + item Répertoire prestataires
  (/providers, module technique, permission technique.providers.view).
- personas.ts + SeedE2ECommand.php : 5 perms technique.providers.* sur le persona
  user-full (porte déjà sites.bypass_scope) — pas de nouveau persona (règle n°7).
- i18n fr.json : clés sidebar.technique.section / sidebar.technique.providers.

Test : ProviderRBACMatrixTest (miroir SupplierRBACMatrixTest) valide la matrice
rôle×verbe via app:seed-rbac, dont le cloisonnement par site de l'Usine
(détail hors site → 404). 8 tests, 65 assertions.
matthieu added the backM3-Prestatairetype/feat labels 2026-06-12 12:56:45 +00:00
Author
Owner

Consolidée dans #100 : toute la pile M3-Prestataire (ERP-134 à ERP-139) a été rebasée sur develop et regroupée dans la MR #100 (mergeable, tests verts). Cette MR intermédiaire est fermée pour ne garder qu'une seule MR ouverte. Les commits de ce ticket restent présents dans #100.

Consolidée dans #100 : toute la pile M3-Prestataire (ERP-134 à ERP-139) a été rebasée sur develop et regroupée dans la MR #100 (mergeable, tests verts). Cette MR intermédiaire est fermée pour ne garder qu'une seule MR ouverte. Les commits de ce ticket restent présents dans #100.
matthieu closed this pull request 2026-06-12 14:37:13 +00:00

Pull request closed

Sign in to join this conversation.