Projet

Général

Profil

Development #71777

wf: ajout d’une option à l’action d’anonymisation pour effectuer la déliaison avec l’usager

Ajouté par Paul Marillonnet il y a plus d'un an. Mis à jour il y a environ un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
28 novembre 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Toujours le cas d’usage de la gestion des personnes morales, où la perte d’un mandat engendre la perte de la visibilité de l’usager sur les demandes précédemment soumises.
Une première piste d’ajout d’une action de déliaison (#69120) avait été creusée pour finalement être écartée. On tablerait maintenant plutôt sur l’ajout d’une option à l’action existante d’anonymisation.


Fichiers


Demandes liées

Lié à w.c.s. - Development #69120: wf: action de déliaison de l’usager demandeur avec la demande soumiseRejeté15 septembre 2022

Actions

Révisions associées

Révision 47576f21 (diff)
Ajouté par Paul Marillonnet il y a environ un an

wf: add user unlinking option to anonymise action (#71777)

Historique

#2

Mis à jour par Paul Marillonnet il y a plus d'un an

  • Lié à Development #69120: wf: action de déliaison de l’usager demandeur avec la demande soumise ajouté
#3

Mis à jour par Paul Marillonnet il y a plus d'un an

  • Assigné à mis à Paul Marillonnet
#4

Mis à jour par Paul Marillonnet il y a plus d'un an

  • Statut changé de Nouveau à En cours

Je commence à regarder.

#5

Mis à jour par Paul Marillonnet il y a plus d'un an

Presque une copie carbone de #69120, rien à ajouter de ce côté ci.

Niveau UI ça rajoute une case à cocher dans l’action d’anonymisation qui jusque là n’avait pas d’option (voir la capture).

#6

Mis à jour par Frédéric Péters il y a plus d'un an

+            if not formdata.user_id:
+                error = _('No user linked to form.')
+                if isinstance(formdata.formdef, CardDef):
+                    error = _('No user linked to card.')
+                get_publisher().record_error(
+                    error,
+                    formdata=formdata,
+                    status_item=self,
+                )
+                return

J'éliminerais totalement ça dans l'idée de la démarche qui peut également être complétée de manière anonyme et qui va se blinder d'erreurs ici, sauf à indiquer en plus une condition pour ne pas lancer l'"anonymisation" si form_user n'est pas positionné.

+        if ('unlink_user') in parameters:

Curieusement ni block ni pylint ne réagit à ces parenthèses ?

+                tab=('error', _('Error while trying to unlink user')),

Ça m'a l'air sorti de nulle part et pas souhaité.

#7

Mis à jour par Paul Marillonnet il y a plus d'un an

Frédéric Péters a écrit :

J'éliminerais totalement ça dans l'idée de la démarche qui peut également être complétée de manière anonyme et qui va se blinder d'erreurs ici, sauf à indiquer en plus une condition pour ne pas lancer l'"anonymisation" si form_user n'est pas positionné.

Ok, pas de condition en plus, je vais juste virer ça.

Curieusement ni block ni pylint ne réagit à ces parenthèses ?

C’est corrigé.

Ça m'a l'air sorti de nulle part et pas souhaité.

Étrange, ça devait traîner dans la branche, et j’ai dû le retirer avant de faire le format-patch mais sans pousser à nouveau, c’était pas dans le patche que j’avais soumis ici.

Nouvelle version à jour.

#8

Mis à jour par Frédéric Péters il y a plus d'un an

Je modifierais unlink_user pour ne rien faire si user_id est vide.

J'éviterais mark_anonymous_formdata, ou alors uniquement si le user_id correspond à l'utilisateur connecté.

#9

Mis à jour par Paul Marillonnet il y a plus d'un an

Ok, dans unlink_user() je ne fais quelque chose que if self.user_id:.

J’ai retiré l’appel à mark_anonymous_formdata, ça me paraissait pertinent au moment d’écrire le patch, mais à relire une nouvelle fois le code de wcs.sessions, ce n’est plus si clair (en particulier je ne comprends pas ta remarque i.e. la pertinence d’appeler cette fonction par rapport au fait que le user_id corresponde à l’usager connecté).

#10

Mis à jour par Frédéric Péters il y a plus d'un an

J’ai retiré l’appel à mark_anonymous_formdata, ça me paraissait pertinent au moment d’écrire le patch, mais à relire une nouvelle fois le code de wcs.sessions, ce n’est plus si clair (en particulier je ne comprends pas ta remarque i.e. la pertinence d’appeler cette fonction par rapport au fait que le user_id corresponde à l’usager connecté).

Le mark_anonymous_formdata permet à l'usager connecté d'accéder à une demande alors qu'il n'en est pas marqué l'auteur (typiquement après avoir saisi une demande sans être loggué, ou après avoir utilisé le code de suivi).

Pour prendre le cas de la saisie d'un formulaire d'évaluation "anonyme" par un usager connecté, on y aurait en première action du workflow cette anonymisation, et donc l'usager va saisir puis être envoyé sur /demande/123 mais là ça pourrait lui dire "accès refusé".

Cela étant, dans wcs/forms/root.py, dans submitted(), les choses sont faites dans un tel ordre que ça va passer :

            url = filled.perform_workflow(event='frontoffice-created')

        if not filled.user_id:
            get_session().mark_anonymous_formdata(filled)

mais c'est uniquement pour le cas où l'anonymisation se fait directement; si jamais c'était plus loin dans le workflow, par une action déclenchée par l'usager, il tomberait sur une erreur "accès refusé".

#11

Mis à jour par Frédéric Péters il y a environ un an

On devrait sans doute aussi retirer l'éventuel code de suivi (même s'il y a une action explicite pour retirer le code de suivi, je pense qu'elle risque trop souvent d'être oubliée)

#12

Mis à jour par Thomas Noël il y a environ un an

Frédéric Péters a écrit :

On devrait sans doute aussi retirer l'éventuel code de suivi (même s'il y a une action explicite pour retirer le code de suivi, je pense qu'elle risque trop souvent d'être oubliée)

Ok, et le préciser alors dans le help_text

If checked, this action will only unlink user from the form/card.

qui deviendrait

If checked, this action will only unlink user from the form/card. Tracking code will also be removed.
#13

Mis à jour par Robot Gitea il y a environ un an

Paul Marillonnet (pmarillonnet) a ouvert une pull request sur Gitea concernant cette demande :

#14

Mis à jour par Paul Marillonnet il y a environ un an

Merci pour ces précisions. J’ai poussé une branche à jour, qui contient le retrait du code de suivi, et ai créé pour l’occasion une PR gitea, puisque qu’on a basculé sur ce mode de revue du code entre temps.

#15

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Solution proposée à Solution validée

Frédéric Péters (fpeters) a approuvé une pull request sur Gitea concernant cette demande :

#16

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Solution validée à Résolu (à déployer)

Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :

#17

Mis à jour par Transition automatique il y a environ un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#18

Mis à jour par Transition automatique il y a 12 mois

Automatic expiration

Formats disponibles : Atom PDF