I’ve just imported my first user from IPB to my local Discourse 2.0.0.beta2 and also went on to import the previous passwords using @michaeld’s discourse-migratepassword.
Everything seems to be working fine, the user is in the database and I’ve verified, that the password check in discourse-migratepassword
succeeds.
What’s not working is saving the user after setting the raw password. User.save returns false
, makes confirm_password?
to fail and produces this output on the log.
I, [2018-02-01T14:31:42.198999 #58525] INFO -- : Started POST "/session" for ::1 at 2018-02-01 14:31:42 +0100
I, [2018-02-01T14:31:42.303772 #58525] INFO -- : Processing by SessionController#create as */*
I, [2018-02-01T14:31:42.305979 #58525] INFO -- : Parameters: {"login"=>"Florian", "password"=>"[FILTERED]"}
D, [2018-02-01T14:31:42.314922 #58525] DEBUG -- : User Load (2.3ms) SELECT "users".* FROM "users" WHERE "users"."username_lower" = 'florian' LIMIT 1
D, [2018-02-01T14:31:42.379916 #58525] DEBUG -- : (1.0ms) 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.6ms) BEGIN
D, [2018-02-01T14:31:42.400523 #58525] DEBUG -- : UserEmail Load (2.0ms) 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 -- : UserEmail Exists (2.8ms) 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 -- : UserEmail Exists (1.5ms) 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.1ms) ROLLBACK
I, [2018-02-01T14:31:42.442319 #58525] INFO -- : Completed 200 OK in 134ms (Views: 0.2ms | ActiveRecord: 25.3ms)
It’s my first encounter with Ruby and Rails/ActiveRecord. It would be great if someone could make sense out of my description
Thanks!
—Florian