Project

General

Profile

Development #53653

deux entrées de journal quand admin je demande l'envoi d'un lien de réinitialisation depuis le backoffice

Added by Frédéric Péters 15 days ago. Updated 10 days ago.

Status:
Solution déployée
Priority:
Normal
Category:
-
Target version:
-
Start date:
02 May 2021
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

  • 2 mai 2021 18:26 Frédéric Péters xwzoft demande de réinitilisation du mot de passe par un administrateur envoyée à l’adresse de courriel « »
  • 2 mai 2021 18:26 Frédéric Péters test 43538 - demande de réinitialisation du mot de passe pour l’adresse de courriel « »

(Frédéric Péters étant mon compte admin, Frédéric Péters test 43538 étant le compte dont je demande la réinitialisation du mot de passe).


Files

Associated revisions

Revision f789703a (diff)
Added by Valentin Deniaud 11 days ago

utils: remove global recording of password resets (#53653)

History

#2

Updated by Valentin Deniaud 12 days ago

  • Assignee set to Valentin Deniaud
#3

Updated by Valentin Deniaud 12 days ago

Ouep il y a un log dans la fonction finale send_password_reset_mail. Cette fonction est utilisée dans plein de contextes différents :
  • reset via le manager par un admin (log spécifique dans le code du manager)
  • reset par un utilisateur (s'appuie sur le log dans la fonction)
  • « reset » via un import CSV, en fait mail pour choisir son mdp, il ne faudrait pas logger
  • « reset » à la création d'un compte via le manager, en fait mail pour choisir son mdp, il ne faudrait pas logger
  • reset via l'API, il faudrait un autre message de log mais c'est #48010

Donc on voit que tous les contextes sont différents, il faut enlever le log générique fait dans la fonction, ce qui revient juste à le déplacer vers le reset par un utilisateur pour que tout marche pareil qu'actuellement.

#5

Updated by Valentin Deniaud 12 days ago

Mouais bon à galérer avec les tests je me rends compte que ces deux lignes apportent quand même deux infos différentes, moins évidents quand tout le monde s'appelle Frédéric Péters :

* 2 mai 2021 18:26     Frédéric Péters     xwzoft     demande de réinitilisation du mot de passe par un
  administrateur envoyée à l’adresse de courriel « bgdu92@entrouvert.com »
* 2 mai 2021 18:26     Eugène De Neuilly     -     demande de réinitialisation du mot de passe pour l’adresse de courriel « bgdu92@entrouvert.com »

Et là avec mon patch ça devient juste

* 2 mai 2021 18:26     Frédéric Péters     xwzoft     demande de réinitilisation du mot de passe par un
  administrateur envoyée à l’adresse de courriel « bgdu92@entrouvert.com »

Et il faut aller chercher l'adresse mail pour trouver l'utilisateur.

Il va donc falloir modifier le message, j'imagine ?

#6

Updated by Frédéric Péters 12 days ago

Et il faut aller chercher l'adresse mail pour trouver l'utilisateur.

Mais l'utilisateur il est attaché à l'entrée du journal, non ? Vu que les deux messages de ma capture étaient sur la page du journal de l'utilisateur ?

Alors oui ça me laissait dire que sur le journal global il va manquer un truc, mais en fait non, quand je le regarde, cf la capture. (il s'agit des mêmes événements que ceux de la première) On a :

  • 2 mai 2021 18:26 Frédéric Péters xwzoft demande de réinitilisation du mot de passe pour le compte « Frédéric Péters test 43538 » envoyée à l’adresse de courriel « »
  • 2 mai 2021 18:26 Frédéric Péters test 43538 - demande de réinitialisation du mot de passe pour l’adresse de courriel « »

i.e. la ligne qui disait " demande de réinitilisation du mot de passe par un administrateur envoyée à l’adresse de courriel « »" précise ici que "pour le compte « Frédéric Péters test 43538 »".

#7

Updated by Benjamin Dauvergne 12 days ago

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

Et il faut aller chercher l'adresse mail pour trouver l'utilisateur.

Mais l'utilisateur il est attaché à l'entrée du journal, non ? Vu que les deux messages de ma capture étaient sur la page du journal de l'utilisateur ?

Yep. Il y a un souci fondamental dans la présentation quand il y a à la fois un utilisateur sujet et objet du log, alors on peut rajouter une deuxième colonne utilisateur, qui sera la plupart du temps vide, accepter deux messages ou bien, et c'est ma solution préférée bien que plus complexe, n'avoir qu'une seule ligne dans les logs, mais faire varier le contenu de la colonne user selon le contexte; c'est déjà possible pour certains messages qui varient selon qu'on regarde le log sur la page de l'objet ou du sujet. ex. pour les messages :

class ManagerUserProfileEdit(EventTypeDefinition):
    name = 'manager.user.profile.edit'
    label = _('user profile edit')
...
    @classmethod
    def get_message(cls, event, context):
        (user,) = event.get_typed_references(User)
        new = event.get_data('new') or {}
        edited_attributes = ', '.join(get_attributes_label(new)) or ''
        if context and context == user:
            return _('edit by administrator (%s)') % edited_attributes
        elif user:
            user_full_name = user.get_full_name()
            return _('edit of user "{0}" ({1})').format(user_full_name, edited_attributes)
        return super().get_message(event, context)
#8

Updated by Valentin Deniaud 11 days ago

Effectivement le premier screen montre le reset vu dans le journal de l'utilisateur, le deuxième dans le journal global où le nom de l'utilisateur est bien affiché, par le mécanisme que décrit Benj. Le patch convient donc en l'état.

#9

Updated by Benjamin Dauvergne 11 days ago

  • Status changed from Solution proposée to Solution validée
#10

Updated by Valentin Deniaud 11 days ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 834d4447193dc60ae5d8c685a3fa3c396344709b
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed May 5 15:21:12 2021 +0200

    utils: remove global recording of password resets (#53653)
#11

Updated by Frédéric Péters 10 days ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF