Filtrer table selon utilisateur

Bonjour,
Nouvel utilisateur de Grist, je suis confronté fonctionnalité que je n’arrive pas à mettre en œuvre malgré mes recherches, je me permet donc une petite demande d’aide ici.

J’ai une table ‹ Tableau de suivi › dont je souhaite filtrer l’affichage des lignes suivant l’utilisateur connecté.
Dans cette table, j’ai une colonne ‹ Commune › (type choix unique - 13 items différents).
Dans une autre table ‹ Utilisateurs ›, je stocke mes users avec deux colonnes : ‹ Email › et ‹ Communes › (choix multiple).

Je souhaite donc que l’utilisateur identifié ne voit que les lignes dont il a l’accès.

J’ai tenté pas mal de choses à base de =$user.Email mais en vain, je n’y arrive vraiment pas…

Si quelqu’un à déjà mis cela en œuvre et pourrait me guider ce serait super chouette svp !

Merci d’avance et bonne journée,
Martin

Bonjour,

Pour ne pas dupliquer de la donnée (ici vos communes), le mieux c’est que vous créiez une table « Communes » dans laquelle vous stockez toutes vos communes.
Ce sera votre source unique de données de communes.

Dans votre table utilisateur, la colonne « Communes » sera une référence multiple vers votre table commune.

Et dans votre table tableau de suivi, la colonne « Commune » sera une référence simple vers votre table commune.

Ensuite, dans les permissions, vous mettez comme règles sur « tableau de suivi »

rec.Commune in user.attr.Communes → autoriser tout

qui signifie : si la commune de ma table « tableau de suivi » fait partie de la liste des communes de mon utilisateur (attr = variable correspondant à l’appairage), alors il peut tout faire.

Est-ce que cela pourrait fonctionner pour vous ?

Pour comprendre comment fonctionnent les permissions invincées, je vous conseille cette vidéo :

1 « J'aime »

Bonjour Audezu,

Je vous remercie pour votre réponse, et pour le lien du Webinaire, je vais prendre le temps d’étudier cela.

À ce stade, j’ai bien créé la table listant les communes et référencé dans les tables ‹ Utilisateurs › et ‹ Tableau de suivi ›.

J’ai tenté la permission rec.Commune in user.attr.Communes mais cela me retourne un No value for 'user.attr' … j’ai tenté quelques variantes, en vain…

Je vais continuer à creuser, mais je présume que le visionnage du webinaire m’apportera quelques pistes.

À suivre …

Bonjour,

Il doit vous manquer le fait d’ajouter des propriétés de l’utilisateur (bouton « ajouter des propriétés d’utilisateur ») :slight_smile:

attr est le nom de l’attribut

1 « J'aime »

Hum hum, merci oui en effet, il me manquait bien cette propriété.
Et avec votre aide, je suis arrivé à mes fins.

Comme ceci pour masquer les lignes et gérer les droits :

Un grand merci !

1 « J'aime »

Avec plaisir :slight_smile:

Pour info ce n’est pas la peine de spécifier la règle inverse (not in) - vous pouvez laisser vide « Tous les autres », et cela fonctionnera bien!

Si vous n’êtes pas très vidéo, il y a cet excellent tuto : Un point de départ pour maîtriser les permissions avancées

N’hésitez-pas si besoin d’aide en tout cas,
Bonne journée