Projet

Général

Profil

Development #53653

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

Ajouté par Frédéric Péters il y a presque 3 ans. Mis à jour il y a presque 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
02 mai 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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).


Fichiers

Révisions associées

Révision f789703a (diff)
Ajouté par Valentin Deniaud il y a presque 3 ans

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

Historique

#2

Mis à jour par Valentin Deniaud il y a presque 3 ans

  • Assigné à mis à Valentin Deniaud
#3

Mis à jour par Valentin Deniaud il y a presque 3 ans

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

Mis à jour par Valentin Deniaud il y a presque 3 ans

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

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

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

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

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

Mis à jour par Valentin Deniaud il y a presque 3 ans

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

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

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

Mis à jour par Valentin Deniaud il y a presque 3 ans

  • Statut changé de Solution validée à 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

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

Formats disponibles : Atom PDF