Projet

Général

Profil

Bug #49036

en cas d'action exécutée en masse, les variables session_* ne sont pas présentes

Ajouté par Thomas Noël il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
02 décembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

parce qu'on oublie d'envoyer la session dans les var de subst lors de l'exécution des actions en masse

    def submit_multi(self, action, selected_filter, query, criterias):
         ...
                for i, formdata in enumerate(formdatas):
                    publisher.substitutions.reset()
                    publisher.substitutions.feed(publisher)
                    publisher.substitutions.feed(self.formdef)
                    publisher.substitutions.feed(formdata)
         ...

Fichiers

Révisions associées

Révision 4dc514c9 (diff)
Ajouté par Thomas Noël il y a plus de 3 ans

misc: add user and session in multi action context (#49036)

Historique

#2

Mis à jour par Frédéric Péters il y a plus de 3 ans

Ok mais j'aimerais passer ce traitement hors contexte de requête, il n'y aura plus de session.

#3

Mis à jour par Thomas Noël il y a plus de 3 ans

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

Ok mais j'aimerais passer ce traitement hors contexte de requête, il n'y aura plus de session.

Patch écrit sans avoir vu ça... j'ai pas bien compris ce que tu demandes ici.

#4

Mis à jour par Frédéric Péters il y a plus de 3 ans

Je notais ça en me disant que ça allait peut-être rendre l'affaire galère, si des trucs plus loin utilisent get_request() et que ça ne donne plus rien.

#5

Mis à jour par Thomas Noël il y a plus de 3 ans

  • Statut changé de Solution proposée à En cours
  • Assigné à Thomas Noël supprimé

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

Je notais ça en me disant que ça allait peut-être rendre l'affaire galère, si des trucs plus loin utilisent get_request() et que ça ne donne plus rien.

Ok... bon... y'a vraiment un truc qui m'échappe.

#6

Mis à jour par Frédéric Péters il y a plus de 3 ans

1/ il y a nécessité de passer les traitements de masse hors du traitement uwsgi de la requête (#46674); 2/ ça va faire que lors du traitement, il n'y aura pas de notion de session; 3/ ce ticket & ma remarque, pour dire attention clash à venir, si on se met à passer la session maintenant ça va provoquer des usages qui pourraient nous amener des galères.

Là je n'ai pas réfléchi, vite fait je dirais qu'on peut se protéger là-dessus en mettant session_user dans le contexte, plutôt que session, que ça répond au ticket lié tout en évitant les problèmes qui viendraient d'une utilisation extensive des variables sous "session_".

#7

Mis à jour par Thomas Noël il y a plus de 3 ans

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

1/ il y a nécessité de passer les traitements de masse hors du traitement uwsgi de la requête (#46674); 2/ ça va faire que lors du traitement, il n'y aura pas de notion de session; 3/ ce ticket & ma remarque, pour dire attention clash à venir, si on se met à passer la session maintenant ça va provoquer des usages qui pourraient nous amener des galères.

Là je n'ai pas réfléchi, vite fait je dirais qu'on peut se protéger là-dessus en mettant session_user dans le contexte, plutôt que session, que ça répond au ticket lié tout en évitant les problèmes qui viendraient d'une utilisation extensive des variables sous "session_".

Ok, alors, en fait, session on s'en fiche ici, ce qui génère « session_user » c'est l'ajout de get_request().user

J'ai ajouté session juste pour faire "comme ailleurs".

Mais bon, ça ne change rien à l'idée : si on change le process de traitement en masse et qu'on n'y a plus de request, alors on n'aura plus le request.user. J'ai quand même l'impression que c'est un peu limite...?

#8

Mis à jour par Thomas Noël il y a plus de 3 ans

En attendant et parce que j'aime bien insister voici une version du patch réduit à la seule ligne ajoutant self.user (pour avoir session_user donc).

#10

Mis à jour par Frédéric Péters il y a plus de 3 ans

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

Mouis, ok, à noter dans un coin que tout ça n'est pas lazy.

#11

Mis à jour par Thomas Noël il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 4dc514c98c270f5764b7d3877b2d992971d0e647
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Wed Dec 2 11:28:37 2020 +0100

    misc: add user and session in multi action context (#49036)

#12

Mis à jour par Frédéric Péters il y a plus de 3 ans

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

Formats disponibles : Atom PDF