QR 85 – Limiter l’accès à certains enregistrements dans FileMaker (1)

FileMaker gère de manière fine et précise les droits d’accès des utilisateurs et leurs privilèges.

Nous avons consacré à cette question trois fiches Astuces, les fiches Astuces 79, 80 et 81 sur les comptes utilisateurs et les privilèges d’accès.

Nous avons vu par exemple qu’il est possible de limiter l’accès d’une base de données à sa seule consultation. Ou encore, d’interdire l’accès de certains modèles…

Mais quid d’un accès différencié des mêmes données ? Ainsi, Jean-Michel s’interroge (1) :

Plusieurs personnes produisent des devis avec la même application. Quelle serait la méthode la plus conviviale, avec FileMaker Pro 16, pour qu’une personne puisse créer son devis sans voir les devis des autres ? Toutes les personnes ont accès aux mêmes rubriques de saisie de données.

Vous voyez le problème : tous doivent avoir accès au modèle Devis. Mais ils ne doivent voir que leurs devis à eux et non celui du voisin !

Ce n’est pas dans des options de FileMaker que nous allons trouver la réponse au problème de Jean-Michel mais dans l’analyse du problème…

Si Jean-Michel veut différencier les devis en fonction de ceux qui les émettent, c’est que nécessairement, le nom de l’éditeur du devis doit être noté quelque part. C’est donc à partir de cette information que l’on pourra restreindre l’accès des devis.

Utiliser la recherche et les privilèges d’accès

On peut imaginer que lorsqu’on arrive sur le modèle Devis, un script est déclenché et recherche aussitôt tous les devis créés par l’utilisateur et les affiche en vue Liste ou, selon les cas, en crée un nouveau.

Une première mise en œuvre

La mise en œuvre alors est extrêmement simple.

Créez une rubrique Auteur_devis (2), avec une entrée automatique Création > Nom de compte.

Dev1

À chaque création d’un nouveau devis, cette rubrique est renseignée. Par exemple (ici présentation en vue Liste) :

Dev2

Créez le script suivant :

Dev3

Nous pouvons au choix et en fonction de ce que vous souhaitez faire par la suite créer une variable locale, avec un seul $ ($User) ou une variable globale, avec deux $ ($$User) si nous pensons la réutiliser ailleurs dans la base, pendant la session d’utilisation du fichier.

Le critère de la recherche porté par l’action de script Exécuter la recherche [Rétablir] est le suivant : Auteur_devis = $$User.

Vous le constatez, rien de compliqué 😉

Dernière étape : nous utilisons un déclencheur de script SurEntreeModele (3) pour exécuter ce script dès que l’utilisateur accède au modèle Liste_Devis.

Et voilà le résultat :

Dev4

Ici, seuls les devis de S se sont affichés car c’est S qui a ouvert une session avec son compte.

Sécuriser l’accès aux enregistrements…

Une difficulté néanmoins demeure…

Comme le montre la photo d’écran ci-dessus, le camembert de la barre d’outils est resté accessible. Il affiche ici 2/5, c’est-à-dire le résultat de la recherche effectuée par le script versus nombre d’enregistrements trouvés.

Si un petit futé clique sur le camembert, ce ne sont plus ses devis qui sont affichés mais tous ceux qui étaient masqués, c’est-à-dire tous ceux qu’il n’a pas le droit de voir !

Alors, si vous souhaitez conserver la barre d’outils avec son camembert, si vous ne souhaitez pas créer un jeu de menus personnalisés, seule solution pour rendre inactif le menu Enregistrements > Afficher les enreg. ignorés uniq., il existe une issue…

Elle utilise les privilèges d’accès (4), ce monde souterrain et peu exploré de FileMaker 😉

********

Désolé, la suite de cet article et sa zone de commentaires font partie de la livraison d’avril 2018, réservée aux abonnés.

Le mieux est de devenir membre (c’est gratuit) ou de vous connecter en tant que tel, et ainsi pouvoir vous abonner :

http://astucieux-filemaker.com/fiches-astuces-filemaker/abonnement/

(1)  Jean-Michel a exprimé sa question depuis l’outil de communication réservé aux abonnés aux fiches Astuces. Magalie, d’Editomac, et Bertrand, autre abonné et fidèle du blog, lui ont répondu en lui donnant les éléments de base pour avancer dans son projet. Merci à eux. Je me suis ici inspirée de leurs réponses tout en la développant et en menant ma propre recherche, pour en faire profiter le plus grand nombre ;-).

(2) On peut aussi théoriquement utiliser la rubrique technique zCreateur que l’on crée systématiquement pour toute table. Mais il vaut mieux réserver ces rubriques à l’usage pour lesquelles elles sont conçues et donc distinguer créateur d’un enregistrement quel qu’il soit et auteur d’un devis. Les options des deux rubriques, zCreateur et Auteur, peuvent en effet être légèrement différentes (par exemple, être moins restrictives dans le cas de la rubrique Auteur, en autorisant sa modification si l’on souhaite par exemple qu’un collègue récupère les devis d’un autre collègue en congé maladie longue durée…).

(3) Sur les déclencheurs de script, voir les fiches Astuces n°115 et 116.

(4) Sur les privilèges d’accès, voir les fiches Astuces n°80 et 81. Sur les comptes utilisateurs voir la fiche Astuce n°79.

 

Article suivant : à venir

 

Tags: , , ,

Merci de laisser un commentaire (Pas de commentaire )

Désolé, les commentaires des articles réservés sont eux-mêmes réservés

Il n'y a pas de commentaire pour l'instant, soyez le premier ;-)