Projet

Général

Profil

Bug #29588

Via l'API et en utilisant un utilisateur destinataire du formulaire, je ne vois quand même pas les statuts cachés au demandeur

Ajouté par Benjamin Dauvergne il y a 12 jours. Mis à jour il y a 12 jours.

Statut:
Solution proposée
Priorité:
Normal
Assigné à:
Début:
09 jan. 2019
Echéance:
% réalisé:

0%

Patch proposed:
Oui

Description

C'est pour le CD06, en arrivant dans le statut Anonymisation je voudrais supprimer toutes les pièces jointes exportées de mes copies, mais je ne peux pas voir ce statut car FormData.get_json_export_dict() fait:

 969         wf_status = self.get_visible_status()
 970         if wf_status:
 971             data['workflow']['status'] = {'id': wf_status.id, 'name': wf_status.name}

sans prendre en compte l'utilisateur indiqué dans l'appel.

0001-api-check-status-visibility-with-get_user_from_api_q.patch Voir (3,64 ko) Benjamin Dauvergne, 09 jan. 2019 13:23

0001-modify-tests.patch Voir (1,9 ko) Benjamin Dauvergne, 09 jan. 2019 15:41

0002-api-check-status-visibility-with-get_user_from_api_q.patch Voir (3,64 ko) Benjamin Dauvergne, 09 jan. 2019 15:41

Historique

#1 Mis à jour par Benjamin Dauvergne il y a 12 jours

Je pose aussi la remarque que ça ne cache rien de fait parce que le statut et de toute façon récupérable via l'id de statut dans les évolutions et un détour via le schéma du workflow, dans wcs-olap j'ai contourné le problème ainsi :

645             # ignore formdata without status
646             if data.workflow.status:
647                 status_id = data.workflow.status.id
648             elif data.evolution:
649                 for evolution in reversed(data.evolution):
650                     if evolution.status:
651                         status_id = evolution.status
652                         break
653                 else:
654                     continue
655             else:
656                 continue
657 
658             try:
659                 status = data.formdef.schema.workflow.statuses_map[status_id]
660             except KeyError:
661                 self.logger.warning('%s.%s unknown status status_id %s',
662                                     data.formdef.schema.name, data.id, status_id)
663                 continue

#2 Mis à jour par Benjamin Dauvergne il y a 12 jours

  • Assigné à mis à Benjamin Dauvergne

#3 Mis à jour par Benjamin Dauvergne il y a 12 jours

Voilà ça passe tous les tests actuels mais on en manque sur ces aspects donc le reste du taf c'est de faire des tests adaptés.

#4 Mis à jour par Benjamin Dauvergne il y a 12 jours

  • Statut changé de Solution proposée à En cours

#5 Mis à jour par Benjamin Dauvergne il y a 12 jours

Modification des tests pour bien observer le changement (avant ça foire, après ça passe), à noter que de toute façon l'API de listing est impossible à appeler sans un utilisateur concerné par le workflow (si on voulait avoir un test vérifiant que le statut disparaît bien dans ce cas, il faudrait ouvrir cette possibilité).

Formats disponibles : Atom PDF