Problème de droits sur un formulaire créé avec le widget "Intra-Grist"

Bonjour et merci pour ce super widget.

Je suis en train de l’essayer pour remplacer le formulaire classique puisqu’on ne peut pas récupérer les infos de l’utilisateur sinon.
Mais j’ai un souci.
Je n’arrive pas à compléter le formulaire avec un autre compte que le mien (depuis les permissions avancées « voir en tant que ». J’ai un message d’erreur :


J’ai également fait tester à un utilisateur qui m’a confirmé le même souci.
J’ai aussi essayé de mettre TOUS les droits à un utilisateur précis, mais ça ne change rien.

Comme le champ « Site ou blog concerné » est une référence, cela vient probablement de là, non ?

Voici mes permissions pour cette table :

Le formulaire :

Le document sans les données (Bonne chance ! Il y a beaucoup de tables et des permissions :scream: ).

Merci d’avance pour votre aide.

Bonne journée.

Bonjour,
Merci d’avoir posté la question dans ce fil :slight_smile:

Je pense que c’est un souci de permissions plutôt que lié au widget intra form, je vous propose les étapes suivantes qui sont classiques pour débugger :

  • en tant qu’éditeur, tester de remplir la table directement dans les données source
    → si vous avez la même erreur lors du remplissage d’une des colonnes, vous pouvez en déduire que le souci ne vient pas du widget mais des règles sur la table
  • dans votre document sans données, ne garder que la table d’intérêt, supprimer les autres pages/tables (vous aurez ainsi un exemple minimal facile à analyser)
  • dans les permissions, enlever les règles de colonne
    → si plus d’erreur, c’est qu’il y a une règle de colonne qui vous pose souci. Rajouter les colonnes une par une, pour voir où ça bloque (il peut y avoir conflit entre règles de col/de table)
    → si erreur → enlever une par une les règles de table, pour trouver celle qui pose souci

Let us know!

Bonjour

J’ai exactement le même souci, et je suis en train d’investiguer.
Et je dois dire que c’est extrêmement perturbant. Dès le moment où je « ferme la porte » (cf l’excellent doc « point de départ des permissions avancées »), c’est à dire que je rajoute cette règle:

Immédiatement, je ne peux plus voir les champs dans le formulaire.

Si j’ajoute une règle « accès en écriture » à tout le monde et ceci pour toutes les tables, cela ne change rien.
Mais lorsque je « réouvre la porte », cela fonctionne de nouveau !

Je vais essayer de créer un exemple reproductible, mais je suis actuellement très perplexe …

De mon côté, la reproduction est plus simple que ce que je pensais:

  1. Créer une table « sondage » avec quelques colonnes
  2. Ajouter le widget dans cette page, en donnant l’accès au document
  3. ajouter la règle d’accès « aucun accès aux éditeurs »
  4. ajouter la règle « tout le monde peut lire » pour la table sondage

Bug observé:
En sélectionnant un profil éditeur, il est possible de voir toutes les colonnes de la table sondage, mais pas de voir les questions du widget.

Document accessible ici: Debug intra form - Grist

Bonjour,
Merci pour ce retour et les étapes pour reproduire :pray:
Je regarde ça !

C’est dû au fait qu’on utilise des fonctions grist.docApi.fetchTable('_grist_Tables') et grist.docApi.fetchTable('_grist_Tables_column') pour récupérer les métadonnées et elles sont affectées par la règle de permission par défaut même si la table spécifique a une règle qui autorise l’accès.

En fait c’est un souci connu et reporté ici : Incorrect user rights check when using custom widgets · Issue #1780 · gristlabs/grist-core · GitHub
J’ai posté un message à Dmitry pour savoir s’il y avait une alternative pour appeler les metadonnées depuis le code du custom widget. Sinon il faudra attendre une correction… Affaire à suivre !

1 « J'aime »

PI il ne semble pas y avoir de contournement possible pour l’instant pour accéder aux métadonnées autrement qu’avec ces fonctions, mais Paul de GristLabs va travailler sur une correction pour que les bonnes permissions s’appliquent.