Impossible de se connecter à l'instance dev avec l'utilisateur importé

Je viens d’importer mon premier utilisateur depuis IPB vers mon Discourse local 2.0.0.beta2, et j’ai également procédé à l’importation des anciens mots de passe en utilisant discourse-migratepassword de @michaeld.

Tout semble fonctionner correctement : l’utilisateur est bien présent dans la base de données, et j’ai vérifié que la vérification du mot de passe dans discourse-migratepassword réussit.

Ce qui ne fonctionne pas, c’est la sauvegarde de l’utilisateur après avoir défini le mot de passe brut. User.save renvoie false, ce qui entraîne l’échec de confirm_password? et génère la sortie suivante dans les journaux :

I, [2018-02-01T14:31:42.198999 #58525]  INFO -- : Démarrage de POST "/session" pour ::1 à 2018-02-01 14:31:42 +0100
I, [2018-02-01T14:31:42.303772 #58525]  INFO -- : Traitement par SessionController#create en */*
I, [2018-02-01T14:31:42.305979 #58525]  INFO -- :   Paramètres : {"login"=>"Florian", "password"=>"[FILTRÉ]"}
D, [2018-02-01T14:31:42.314922 #58525] DEBUG -- :   Chargement de User (2,3 ms)  SELECT  "users".* FROM "users" WHERE "users"."username_lower" = 'florian' LIMIT 1
D, [2018-02-01T14:31:42.379916 #58525] DEBUG -- :    (1,0 ms)  SELECT "user_custom_fields"."name", "user_custom_fields"."value" FROM "user_custom_fields" WHERE "user_custom_fields"."user_id" = 1 ORDER BY id asc
D, [2018-02-01T14:31:42.383404 #58525] DEBUG -- :    (0,6 ms)  BEGIN
D, [2018-02-01T14:31:42.400523 #58525] DEBUG -- :   Chargement de UserEmail (2,0 ms)  SELECT  "user_emails".* FROM "user_emails" WHERE "user_emails"."user_id" = 1 AND "user_emails"."primary" = 't' LIMIT 1
D, [2018-02-01T14:31:42.427949 #58525] DEBUG -- :   Vérification de l'existence de UserEmail (2,8 ms)  SELECT  1 AS one FROM "user_emails" WHERE "user_emails"."email" = 'address@domain.invalid' AND ("user_emails"."id" != 1) LIMIT 1
D, [2018-02-01T14:31:42.433311 #58525] DEBUG -- :   Vérification de l'existence de UserEmail (1,5 ms)  SELECT  1 AS one FROM "user_emails" WHERE "user_emails"."primary" = 't' AND ("user_emails"."id" != 1) AND "user_emails"."user_id" = 1 LIMIT 1
D, [2018-02-01T14:31:42.437460 #58525] DEBUG -- :    (1,1 ms)  ROLLBACK
I, [2018-02-01T14:31:42.442319 #58525]  INFO -- : Terminé avec 200 OK en 134 ms (Vues : 0,2 ms | ActiveRecord : 25,3 ms)

C’est ma première rencontre avec Ruby et Rails/ActiveRecord. Ce serait formidable si quelqu’un pouvait donner un sens à ma description :slight_smile:

Merci !
—Florian

The plugin works great, so the number one reason for login issues is usually password related:

Thanks a lot — exactly the reason why it wasn’t working!

The plugin now features the setting migratepassword_allow_insecure_passwords which enables you to work around this issue.

Thanks for adding that setting.

Ideally the plugin would prompt the user to change the password when an insecure password is detected.

Yeah, allowing the login but setting the login redirect to /my/preferences/account?needs_password_reset would probably solve the problem.