[ERP-47] Déclarer le module Catalog et synchroniser RBAC #19
Reference in New Issue
Block a user
Delete Branch "feature/ERP-47-declarer-module-catalog-rbac"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Ticket Lesstime #47 — M0 position 0.5. Wire le nouveau module Catalog dans Starseed et synchronise les 3 sources RBAC (sidebar + personas E2E + seed back). Couvre RG-1.01 (Admin uniquement) côté infra.
Spec :
docs/specs/M0-categories/spec-back.md§ 5.1 + § 5.3.Modifications (6 fichiers — règle ABSOLUE Starseed n°8 : les 3 sources RBAC bougent ENSEMBLE)
src/Module/Catalog/CatalogModule.php(nouveau)ID=catalog,LABEL=Catalogue,REQUIRED=true, 2 permissions (view+manage)config/modules.phpCatalogModule::classconfig/sidebar.phpcatalog.categories.viewfrontend/i18n/locales/fr.jsonsidebar.catalog.categories=Gestion des catégoriesfrontend/tests/e2e/_fixtures/personas.tsuser-fullreçoit les 2 permissions +'categories'dansexpectedAdminLinks.super-adminetALL_ADMIN_LINKSétendus avec'categories'.user-readonlyinchangé (Admin-only au M0 — pas de mode read-only spec'é).src/Module/Core/Infrastructure/Console/SeedE2ECommand.phpuser-fullreçoit les 2 permissionsDécisions
REQUIRED = true: la spec § 5.1 + le prompt user disenttrue(Category sera FK NOT NULL côté futurs modules Tiers). Le ticket Lesstime ditfalsepar erreur — j'ai suivi la spec.user-full: pas de persona métier « Admin » explicite danspersonas.ts(personas techniques :super-adminbypass,user-full= toutes permissions).user-fullest l'équivalent fonctionnel.user-readonlyNON touché : RG-1.01 dit « Admin uniquement », pas de pattern read-only spec'é au M0. À rouvrir dans un futur ticket si besoin.Validation
make php-cs-fixer-allow-risky✓ (0 fichier corrigé)make db-reset✓ (sync-permissions : 11 codes en base, dont les 2 nouveauxcatalog.categories.*vérifiés viadbal:run-sql)make test✓ (248 tests, 0 régression)GET /api/categoriesetGET /api/category_typesGET /api/categories,POST /api/categories,GET /api/category_typesGET /api/categories04336cc682to1d3b1c2881