Development #28732
étendre /api/users/forms pour pouvoir prendre en compte les permissions d'un agent
0%
Description
Aujourd'hui l'API renvoie toutes les demandes concernant l'usager, on voudrait pouvoir ajouter à cet appel un paramètre pour que les demandes soient également filtrés selon les permissions d'un agent.
A priori comme /api/forms, par défaut on ne retournerait pas ce qui n'est pas lisible, on accepterait un ignore-roles=on pour tout retourner, et on ajouterait un readable: true/false selon la possibilité pour l'agent de voir la demande en entier.
Ou, comme on peut déjà faire /api/users/<user id>/forms, on étendrait ça pour pouvoir faire /api/users/<user uuid>/forms, et dans cette situation alors le ?NameID correspondrait à l'agent.
~~
Côté appelant, combo, je n'arrive pas encore à déterminer quelle forme serait la plus agréable, à voir dans un ticket combo.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Lié à Development #28733: pouvoir filter les cellules "demandes d'un usager" selon les permissions de l'agent connecté ajouté
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Fichier 0001-api-filter-user-forms-when-requested-by-another-user.patch 0001-api-filter-user-forms-when-requested-by-another-user.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Sans distinction ignore-roles=on/off, que je ne trouve pas nécessaire (ce qui permet ainsi à la cellule combo de directement fonctionner).
Mis à jour par Thomas Noël il y a plus de 5 ans
Éventuellement j'ajouterais juste un petit commentaire sur le "if self.user" qui expliquerait le contexte : ce self.user signifie que l'appel de la forme /api/user/<nameid>/forms et dans ce cas le nameid de la query-string est la personne qui consulte la liste, très certainement en backoffice.
Je me suis demandé comment ça réagirait avec les draft en cas de include-draft, mais en backoffice c'est jamais quelque chose qu'on fait (liste les brouillons d'un usager) donc on peut considérer qu'on s'en fiche complétement et j'ai arrêté de refléchir.
(et tiens, on n'a rien ajouté dans la doc sur l'existence de forme /api/user/<nameid/ ; d'ailleurs cette forme vient d'un commit f0e88b1c qui ne dit même pas son numéro de ticket, c'est un vrai scandale)
Mis à jour par Thomas Noël il y a plus de 5 ans
- Statut changé de Solution proposée à Solution validée
C'est un ack, donc (avec ou sans le commentaire)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
J'ai ajouté un commentaire et poussé,
commit 5d67c72b7b8e2662230429b58c83f86ddd3aaf5d Author: Frédéric Péters <fpeters@entrouvert.com> Date: Fri Dec 7 18:34:10 2018 +0100 api: filter user forms when requested by another user (#28732)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
api: filter user forms when requested by another user (#28732)