b8dc3cb696
Auto Tag Develop / tag (push) Successful in 7s
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>
45 lines
1.8 KiB
PHP
45 lines
1.8 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Shared\Domain\Security;
|
|
|
|
/**
|
|
* Codes des roles METIER MALIO partages entre modules.
|
|
*
|
|
* 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 (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
|
|
* une constante du module Commercial (regle ABSOLUE n°1 : pas d'import
|
|
* inter-modules) ;
|
|
* - le ClientProcessor (module Commercial) detecte le role Commerciale via ce
|
|
* meme code, sans dependre de Core.
|
|
*
|
|
* 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 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).
|
|
*/
|
|
public const string COMMERCIALE = 'commerciale';
|
|
|
|
private function __construct()
|
|
{
|
|
// Classe de constantes : non instanciable.
|
|
}
|
|
}
|