Bonjour @françois,
Je me permets de déterrer ce sujet car j’ai besoin de généraliser ce traitement (afficher ou masquer une zone d’attribut) en fonction du profil de l’utilisateur (hasResponsibility).
En effet, nous souhaitons avoir des écrans « light » pour nos utilisateurs de base, avec seulement qq attributs affichés, et conserver les écrans actuels pour les utilisateurs avancés.
Je pense que l’idéal pour faire cela est de regrouper les champs des utilisateurs « avancés » dans des zones d’attributs que je masquerais pour les utilisateurs de base.
Exemple : Si l’utilisateur est un locataire
if (rent.getGrant().hasResponsibility(“IMMO_LOCATAIRE”))
, il ne verra pas la zone d’attribut contenant des champs confidentiels tel que le prix d’achat du bien, les indicateurs…
Question 1 : Est-ce que cette approche est bonne ? il y a-t-il des inconvénients à faire cela ?
Pour rendre cette solution dynamique et évolutive, j’aurai une table de paramétrage avec comme colonnes : les groupes de sécurités, les objets, les zone d’attributs de ces objets et un flag à afficher(O/N).
Afin de ne pas avoir à créer/modifier des dizaines (voir plus) de contraintes front à chaque fois qu’on veut ajouter ou retirer une ZA à un profil, je propose que dans le postSelect de chaque objet, et en fonction du profil de l’utilisateur connecté, je parcoure cette table de paramétrage pour afficher ou non tel ou tel ZA
this.getFieldArea(“ImmoLocataire-2”).setVisible(true/false);
Question 2 : Pareil, est-ce que cette approche est bonne ? il y a-t-il des inconvénients à faire cela ?
Je préfère vous poser la question avant de commencer à mettre en place cette solution pour des dizaines d’objets métiers.
Merci d’avance pour votre retour.
Abed.