Le processus standard de réinitialisation du mot de passe Joomla se déroule en trois étapes:
Je ne vois vraiment pas l'intérêt d'obliger l'utilisateur à entrer son nom d'utilisateur s'il suivait le lien de réinitialisation qui lui était fourni par courrier électronique. S'ils ont reçu le lien, ils ont le contrôle de l'adresse électronique associée au compte d'utilisateur. Leur demander leur nom d'utilisateur est superflu.
Certes, le lien n'inclut pas actuellement l'adresse électronique ou le nom d'utilisateur en tant que paramètre de requête, mais en supposant que ce soit le cas, l'étape 2 pourrait être totalement ignorée, ce qui simplifiera le processus. Vous pourriez faire valoir qu'exiger que l'utilisateur fournisse également son nom d'utilisateur pendant le processus de réinitialisation augmente la sécurité globale, mais ensuite, si vous utilisez l'adresse e-mail comme nom d'utilisateur, comme dans mon cas, cela est arbitraire et gênant pour les utilisateurs. Le processus de réinitialisation pourrait être effectué sans exposer le nom d'utilisateur (en incluant simplement l'adresse électronique en tant que paramètre de requête supplémentaire), si cela posait problème, à tout le moins.
J'ai examiné le code Joomla pour le module com_users et, malheureusement, sans modifier le code Joomla (ce que j'évite strictement), je ne vois pas comment manipuler le lien de réinitialisation du mot de passe inclus dans le message de réinitialisation, via un plugin ou autrement, avant il est envoyé. Quelqu'un peut-il penser à un moyen pratique d'y parvenir?
Je viens de rencontrer cette extension, ce qui me permettrait de créer un remplacement de la classe du contrôleur d'enregistrement com_users (afin d'ajouter le paramètre de requête supplémentaire au lien de réinitialisation), comme alternative à l'autre solution proposée:
https://gruz.ml/en/extensions/mvcoverride.html
Développeurs expérimentés uniquement. Pourrait être utile à quelqu'un venant de cette façon.
Si vous avez seulement besoin de modifier le module com_users, vous pouvez certainement le remplacer en le copiant-collant dans votre modèle, par exemple. dans: template/html/com_users/registration/default.php?
Ensuite, vous souhaitez définir le champ username
masqué et lui attribuer la valeur que vous pouvez charger à partir de la base de données à l'aide de la requête contenant la partie unique du lien de réinitialisation.
(Alternativement, ceci pour Joomla 1 pourrait contenir des indices, si vous êtes développeur: https://forum.joomla.org/viewtopic.php?t=50531 )