Je n’ai pas trouvé de moyen de reproduire ce problème, mais au cours du dernier mois, j’ai remarqué deux cas où un utilisateur était censé être désactivé (comme vu dans les journaux d’actions du personnel) mais pas réellement désactivé (l’utilisateur pouvait toujours se connecter).
Par exemple, celui-ci a été « désactivé » il y a 29 jours, mais a pu m’envoyer un message privé aujourd’hui (les seules autres actions du personnel après la désactivation sont « vérifier l’e-mail »)
Cela se produit toujours de manière sporadique. Par exemple, cet utilisateur a été initialement « désactivé » le 23 août, mais je viens de remarquer maintenant qu’il était toujours actif et je l’ai effectivement désactivé.
Comment un utilisateur peut-il être désactivé deux fois (sans réactivation entre les deux) ?
J’ai une tâche quotidienne qui exécute une requête pour vérifier cette situation. Elle n’a rien retourné hier et cet utilisateur aujourd’hui, donc ce qui semble se passer, c’est que l’utilisateur a été correctement désactivé le 23 août, mais il a été réactivé hier (sans qu’aucune trace ne soit laissée).
Est-il possible de réactiver un utilisateur (via l’API ou l’interface utilisateur) sans laisser de trace ? Je suppose que cela ne pourrait se produire qu’en modifiant directement la base de données, ce que je suis certain de ne pas avoir fait (je suis le seul administrateur).
Cela peut arriver. Tout ce qu’un utilisateur désactivé doit faire pour réactiver son compte est de tenter de se connecter au site, puis de cliquer sur le lien dans l’e-mail d’activation qui lui est envoyé.
Lorsqu’un utilisateur désactivé tente de se connecter, il verra cette modale :
Après avoir cliqué sur le lien dans l’e-mail, l’utilisateur sera connecté à Discourse.
C’est le comportement depuis aussi longtemps que je me souvienne. Je ne pense pas que ce soit un bug, mais je pourrais me tromper. Envoyer un e-mail « Confirmez votre nouveau compte » à un utilisateur qui a déjà un compte semble un peu étrange.
Modification : pour obtenir le comportement que vous recherchez, vous voudrez probablement « suspendre » l’utilisateur au lieu de le désactiver.