Droits ACL (permettant de filtrer les données "visibles" en fonction du poste de la personne : Commercial / Responsable)…
Organigramme :
Pour l’exemple :
- L’Equipe Commerciale 1 est composée 2 commerciaux (Commercial1 & Commercial2)
- L’Equipe Commerciale 2 est composée 3 commerciaux (Commercial3, Commercial4, Commercial5)
- L’Equipe Commerciale 3 est composée de 4 commerciaux (Commercial5, Commercial6, Commercial7 & Commercial8).
Règles de sécurité à appliquer:
- Le PDG voit toutes les données.
- Le Responsable Secteur voit toutes les données pour son secteur uniquement et les données de ses commerciaux.
- Les Commerciaux voient les données qui leurs sont propres uniquement.
Implémentation :
Nous utiliserons ici la variable $user, qui va être utilisée comme ‘ACL Entry Limit’.
Cet élément sera substitué par le nom d’utilisateur de la personne une fois connectée à DI-DiveLine via ProDiver / NetDiver / DivePort.
Ainsi, si on a dans le Modèle une Dimension ou un Champ Infos qui contient le nom d’utilisateur dans DI-DiveLine, nous pourrons utiliser $user pour filtrer la vue de chaque personne aux lignes du modèle qui contiennent leur nom d’utilisateur.
Dans notre cas, le modèle doit donc contenir 2 Dimensions supplémentaires pour chaque ligne de données : Secteur et Commercial,
où Secteur = Nom du Responsable dans DI-DiveLine (ici Secteur1, Secteur2 & Secteur3)
Commercial = Nom du Commercial dans DI-DiveLine (ici Commercial1, Commercial2, etc...)
Nous allons définir 3 groupes dans DI-DiveLine :
- ‘PDG’ qui désigne le ou le(s) dirigeants du groupe.
- ‘Responsable’ qui désigne les Responsables Secteurs.
- ‘Commerciaux’ qui désigne les Commerciaux.
On applique ensuite la stratégie sur les Groupes, avec les ACL suivantes :
- PDG : Aucune restriction.
- Responsable : 1 Limite, Dimension Secteur = $user
- Commerciaux : 1 Limite, Dimension Commercial = $user
Enfin, on ajoute les utilisateurs pour chaque groupe.
Attention, les valeurs de dimension dans les modèles doivent correspondre à l’identique aux noms des utilisateurs dans DiveLine - même la casse est importante.