feat(technique) : ProviderProvider + ProviderProcessor + cloisonnement site (ERP-134) #93
Reference in New Issue
Block a user
Delete Branch "feature/ERP-134-provider-processor-cloisonnement-site"
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?
Cœur API du répertoire prestataires (M3 Technique), jumeau du M2 fournisseurs. Stackée sur ERP-133 (base =
feature/ERP-133-creer-entites-provider) ; à rebaser surdevelopune fois ERP-133 mergé.Ticket : #134
Livré
ApiPlatform\Doctrine\Orm\Paginator), filtres?search/categoryCode/siteId/includeArchived, tricompanyName ASC, exclusion archives + soft-deletes (RG-3.16). Cloisonnement par site piloté par l'utilisateur (RG-3.17 / § 2.13) : liste restreinte aucurrentSiteavant pagination (totalItems= périmètre), détail hors périmètre → 404, bypass viasites.bypass_scope.companyName(RG-3.11), POST formulaire principal, PATCH partiels par groupe en mode strict (RG-3.15, 403 sur tout le payload), archivage (RG-3.13/3.14), 409 doublon de nom (RG-3.10), garde d'écriture cloisonnée des sites (RG-3.03/3.17).provider:read:accountingsiaccounting.view(jamais par retrait — parade fuite IBAN/BIC bug #4 M1).#[ApiResource]câblé sur l'entitéProvider.Tests
26 tests Technique (ProviderApiTest, ProviderListTest, ProviderRbacGatingTest, ProviderSiteScopeTest). Suite complète verte : 612 tests / 2832 assertions.
Notes de revue
SiteCollectionScopedExtension(module Sites) scope déjà la résolution d'IRISite→ un user sansbypass_scope/read_refreçoit 400 (anti-énumération) avant le Processor. La gardeguardSiteScope(422 sursites) reste l'enforcement autoritaire pour les userssites.read_ref. Les deux couches sont testées.provider_address.sites, export XLSX.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.
Pull request closed