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 ![]()
Merci !
—Florian