Bug #53944
Trace sur /api/forms/?full=on
0%
Description
- "test1" - Accès de test sans rôle et sans anonymisation.
- "test2" - Accès de test avec rôle et sans anonymisation.
- "test3" - Accès de test sans rôle et avec anonymisation.
- "test4" - Accès de test avec rôle et avec anonymisation.
Le rôle donne accès en BO à ces données : https://demarches-mates.test.entrouvert.org/backoffice/management/inscription-aux-activites/
Pour test1 et test3 qui n'ont pas de rôle le retour est : {'data': []}
OK
Pour test2 et test4 qui ont un rôle donnant accès à des données : Erreur 500 avec {'err': 1}
NOK
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a presque 3 ans
- Sujet changé de Accès à /api/forms/ en HTTP BASIC retourne une 500 et {'err': 1} à Trace sur /api/forms/ receipt_time datetime vs struct_time
- Statut changé de Nouveau à En cours
- Assigné à mis à Frédéric Péters
Vraisemblablement aucun rapport avec l'authentification.
La trace,
Exception: type = '<class 'TypeError'>', value = ''datetime.datetime' object is not subscriptable' Stack trace (most recent call first): File "/usr/lib/python3/dist-packages/wcs/formdata.py", line 1155, in get_json_export_dict 1153 data['display_name'] = self.get_display_name() 1154 data['text'] = self.get_display_label() > 1155 data['receipt_time'] = datetime.datetime(*self.receipt_time[:6]) 1156 data['last_update_time'] = datetime.datetime(*self.last_update_time[:6]) 1157 data['criticality_level'] = self.criticality_level locals: anonymise = False data = {'id': '123', 'digest': None, 'display_id': '9-123', 'display_name': 'Inscription aux activités - n°9-123', 'text': 'Inscription aux activités - n°9-123'} include_files = False self = <_wcs_Inscription-Aux-Activites 'Inscription aux activités - n°9-123' id:123> user = <wcs.api_access.ApiAccess.get_as_api_user.<locals>.RestrictedApiUser object at 0x7f524acb1f98>
On a donc cette demande (Inscription aux activités - n°9-123), dont la date de réception apparait être un datetime plutôt qu'un time.struct_time.
C'est curieux, brièvement testé, elle m'apparait bien en time.struct_time; et via https://demarches-mates.test.entrouvert.org/backoffice/management/inscription-aux-activites/123/json ça s'affiche.
Mis à jour par Frédéric Péters il y a presque 3 ans
Vraisemblablement aucun rapport avec l'authentification.
De fait, après m'être donné du rôle, https://demarches-mates.test.entrouvert.org/api/forms/?full=on me donne la 500.
Mis à jour par Frédéric Péters il y a presque 3 ans
- Sujet changé de Trace sur /api/forms/ receipt_time datetime vs struct_time à Trace sur /api/forms/?full=on
En fait, /api/forms/?full=on, ce n'est ni documenté ni testé, et c'est normal parce que ça n'existe pas, comment t'es-tu trouvé à utiliser ça ?
Ce qui se passe c'est qu'on récupère les demandes en masse depuis la vue avec toutes les demandes, mais cette vue, elle ne contient pas les données et les date·heures y sont formatées différemment.
La résolution de ce ticket va être de lever une erreur 400 quand ?full=on est passé à cette API.
Mis à jour par Frédéric Péters il y a presque 3 ans
- Fichier 0001-api-raise-bad-request-when-full-on-is-given-to-globa.patch 0001-api-raise-bad-request-when-full-on-is-given-to-globa.patch ajouté
- Tracker changé de Autre à Bug
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Mikaël Ates (de retour le 29 avril) il y a presque 3 ans
En fait, /api/forms/?full=on, ce n'est ni documenté ni testé, et c'est normal parce que ça n'existe pas, comment t'es-tu trouvé à utiliser ça ?
Je pense que ça vient de l'usage sur les couche carto {{ eservices_url }}api/cards/piscine/geojson?full=on
comme par exemple https://validation.test.entrouvert.org/manage/maps/layers/piscines-eo/edit/.
La résolution de ce ticket va être de lever une erreur 400 quand ?full=on est passé à cette API.
Ok.
Mis à jour par Thomas Noël il y a presque 3 ans
'so such parameter (full)' j'imagine que tu voulais écrire "no such" et je propose d'écrire 'no such parameter "full"' histoire que le "(full)" ne soit pas lu comme "paramètre inexistant (et y'a un truc qui est plein dans cette affaire)".
Mis à jour par Frédéric Péters il y a presque 3 ans
- Fichier 0001-api-raise-bad-request-when-full-on-is-given-to-globa.patch 0001-api-raise-bad-request-when-full-on-is-given-to-globa.patch ajouté
Oui, voilà.
Mis à jour par Thomas Noël il y a presque 3 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a presque 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 7255de9d3eedf9b76c923092fc26adcb5b241852 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue May 11 20:33:05 2021 +0200 api: raise bad request when ?full=on is given to global forms API (#53944)
Mis à jour par Frédéric Péters il y a presque 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
api: raise bad request when ?full=on is given to global forms API (#53944)