Filtrer table selon user

Bonjour. J’ai créé un grist de suivi du courrier entrant avec 3 tables: BASE_COURRIER, DIRECTIONS et UTILISATEURS. Dans la table BASE_COURRIER, il y a une colonne attribution qui est référencée sur la table DIRECTIONS colonne direction qui indique à quelle direction est attribué le courrier.
Ma table DIRECTIONS, contient 1 colonne direction qui liste toutes les directions.
Ma table UTILISATEURS contient deux colonnes, une colonne direction qui est référencée sur la table DIRECTIONS et une colonne email.
Je voudrais que selon l’utilisateur connecté, il ne puisse voir que les lignes de la direction dont il dépend (tel que prévu par la table UTILISATEURS).
J’ai essayé plein de choses, mais rien ne fonctionne. Est ce que quelqu’un pourrait m’aider svp ?

Bonjour, il faut utiliser les permissions avancées.
Votre table utilisateur doit bien référencer le nom (nom.prenom) ou le mail de l’utilisateur. La colonne de « filtre », ici la direction, doit être sous format texte et non pas choix, sinon cela ne fonctionne pas.
Dans les permissions avancées il faut ajouter des propriétés d’utilisateur.
Vous pouvez utiliser user.Email dans les propriétés d’appairage, en visant votre table Utilisateurs comme table d’appairage. La colonne cible est celle contenant l’utilisateur.
Ensuite, dans les règes pour votre table Base Courrier, vous devez faire des règles par colonne, en interdisant l’accès aux colonnes pour lesquelles la valeur Direction sur la table Base Courrier ne correspond pas à la valeur Direction sur la table Utilisateurs

Bon gristage

faut-il absolument être en espace d’équipe pour que ça fonctionne ?

Non cela est fait par document


Bonjour, j’ai bien mis dans mes tables courriers et utilisateurs les colonne contenant la direction sous format texte soit la colonne « attribution » et la colonne « direction » mais ça ne filtre toujours pas…

Il faut comparer la colonne Attribution de la table BASE_COURRIER et la colonne Direction de la table UTILISATEURS. Selon si ce sont des colonnes de type Référence unique ou Référence multiple, il faudra utiliser l’une des formules suivantes :

  • Référence unique : user.direction.direction == rec.attribution
  • Référence multiple : user.direction.direction in rec.attribution

comme me l’as indiqué ArnoP, cela ne fonctionne que si la colonne attribution est une colonne type « Texte » ( pour avoir testé ça fonctionne effectivement) Or ma colonne attribution est référencée sur ma table LISTES colonne Directions…

Je pense que vous voulez dire que votre colonne attribution est référencée sur la table DIRECTIONS colonne direction (cf. votre premier message).

Je vous confirme que ma solution marche avec une colonne de type Référence, comme dans cet exemple Permissions avancées - Grist (vous pouvez jouer avec mais je vous mets à toutes fins utiles les captures d’écran des infos importantes) :