Cannot login to dev instance with imported user


(Florian) #1

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 :slight_smile:

Thanks!
—Florian


(Gerhard Schlager) #2

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


Password settings changed after Rebuild. Users unable to login
(Florian) #3

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


(Richard - DiscourseHosting.com) #4

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


(Gerhard Schlager) #5

Thanks for adding that setting.

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


(Kane York) #6

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