Le plugin fonctionne en remplaçant la méthode confirm_password? de la classe User.
Il appelle d’abord la vérification du mot de passe d’origine et ne fait rien lorsque le mot de passe est accepté par la logique principale de Discourse.
Si ce n’est pas le cas, il vérifie si l’utilisateur a un champ personnalisé import_pass et, si c’est le cas, il utilise tous les algorithmes disponibles pour vérifier le mot de passe saisi par rapport au hachage import_pass.
S’il trouve une correspondance, il enregistre le mot de passe saisi comme mot de passe de l’utilisateur et autorise l’utilisateur à se connecter.