Contrôle de l'accès aux informations

En outre, vous pouvez masquer les entrées des composants TableGrid et ComboBox, que l'utilisateur ne doit pas voir.

Pour cela, la propriété du composant Rôles possède une sous-clé Data Filter dans laquelle vous pouvez écrire pour chaque rôle une condition de filtrage des enregistrements. La syntaxe de la condition est similaire à celle du langage de requête SQL de la clause WHERE.


Exemple

Supposons que vous ayez une base de documents. Chaque document se voit attribué son importance: «Élevée», «Moyenne», «Faible». Nous nous assurons que :

  • un utilisateur avec le rôle "Utilisateur" ne peut voir que les documents avec l'importance de "Faible" (Low).
  • un utilisateur avec le rôle "Manager" verra les documents avec l'importance de "Medium" et "Low".
  • un utilisateur avec le rôle "Directeur" verra tous les documents.


Voici à quoi ressemble la structure de la base de données documentaire et les données qu'elle contient :


La configuration du composant TableGrid ressemblera à ceci :

Pour le rôle Directeur, nous laissons le champ vide, ce rôle aura donc accès à tous les documents.

Pour le rôle Manager, répertoriez les identificateurs d'importance des documents, de sorte que ce rôle aura accès aux documents d'importance moyenne et faible.

Pour le rôle Utilisateur, seuls les documents avec un ID d'importance de 3 seront disponibles, ce qui correspond aux documents de faible importance.


Ce paramétrage est égalament autorisé :


Mais cela présente plusieurs inconvénients:

  1. Le champ "level.name" doit être présent dans les paramètres du composant "TableGrid"
  2. Si vous modifiez le type d'importance, par exemple de "Faible" à "Mineure", vous devrez corriger la condition.
  3. Cela fonctionne plus lentement.


Les utilisateurs ayant le rôle "Directeur" peuvent voir tous les documents, il n'est donc pas nécessaire de filtrer les données.

Le composant "ComboBox" est configuré de la même manière.



A suivre : Création des utilisateurs