Lot de correctifs sur l'écran Client (M1), + un retrait de règle métier et une petite fonctionnalité. ## Formulaire client (création / édition) - Boutons « ajouter un bloc » (Adresse, RIB) désactivés tant que le dernier bloc n'est pas valide. - Onglet Information : bouton Valider désactivé si aucun champ rempli (création) ; onglet Contact accessible dès la création (Information facultatif). - Champs « Relation » (Distributeur/Courtier) et « Prestation de triage » masqués par défaut, révélés seulement si une catégorie ordinaire (≠ Distributeur/Courtier) est sélectionnée. - Bloc RIB affiché uniquement si le type de règlement est LCR (création, édition, consultation) ; plus de RIB fantôme soumis. - Alignement du bas du textarea « Description » sur les autres champs. ## Recherche d'adresse (BAN) - Une erreur de l'API ne bloque plus définitivement la recherche : chaque frappe réessaie (le mode dégradé restait verrouillé). - Garde minimum 3 caractères avant l'appel à l'API. ## Répertoire client - Titres de colonne en noir 16px, corps + tags de site en 14px. ## Navigation - L'onglet actif est conservé au passage consultation ↔ édition (via history.state, hors URL). ## Règle métier - Retrait de RG-1.04 : l'onglet Information n'est plus obligatoire pour le rôle Commerciale — facultatif pour tous (back + tests + docs). Tests : suites front (Vitest) et back (PHPUnit) vertes hormis flakes d'infra connus. Reviewed-on: #76 Co-authored-by: tristan <tristan@yuno.malio.fr> Co-committed-by: tristan <tristan@yuno.malio.fr>
This commit was merged in pull request #76.
This commit is contained in:
@@ -10,9 +10,11 @@ namespace App\Shared\Domain\Security;
|
||||
* Distincts des roles SYSTEME (cf. App\Module\Core\Domain\Security\SystemRoles :
|
||||
* `admin` / `user`). Un role metier porte une intention fonctionnelle (poste de
|
||||
* travail) et conditionne certaines regles de gestion au-dela des permissions
|
||||
* RBAC pures — ex : RG-1.04 du M1 Clients rend l'onglet Information obligatoire
|
||||
* pour le seul role Commerciale, alors que Commerciale et Bureau partagent les
|
||||
* memes permissions (commercial.clients.view + manage, cf. spec-back M1 § 5.2).
|
||||
* RBAC pures (Commerciale et Bureau partagent par ex. les memes permissions
|
||||
* commercial.clients.view + manage mais peuvent porter des regles de gestion
|
||||
* propres au poste). NB : l'ancienne RG-1.04 du M1 (« Information obligatoire
|
||||
* pour Commerciale ») a ete retiree — l'onglet Information est facultatif pour
|
||||
* tous ; la machinerie de role metier reste disponible pour de futures regles.
|
||||
*
|
||||
* Ces constantes vivent dans Shared (et non dans un module) pour que :
|
||||
* - le seed des roles cote Core (ERP-74) reference le meme code sans importer
|
||||
@@ -24,14 +26,14 @@ namespace App\Shared\Domain\Security;
|
||||
* Coordination stack M1 :
|
||||
* - ERP-74 seede le role `commerciale` avec ce code exact.
|
||||
* - ERP-59 / ERP-60 (declaration RBAC + tests personas) le reutilisent.
|
||||
* - ERP-55 (ici) ne fait que le REFERENCER : tant qu'aucun user ne porte le
|
||||
* role `commerciale`, la validation de completude Information reste dormante.
|
||||
* - ERP-55 le referencait pour la completude Information (M1 RG-1.04), regle
|
||||
* depuis retiree ; le code reste utilise par le seed RBAC et les personas.
|
||||
*/
|
||||
final class BusinessRoles
|
||||
{
|
||||
/**
|
||||
* Role metier « Commerciale » — code de Role RBAC (champ Role::code,
|
||||
* snake_case impose par la regex Role). Conditionne RG-1.04.
|
||||
* snake_case impose par la regex Role).
|
||||
*/
|
||||
public const string COMMERCIALE = 'commerciale';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user