solidusio / solidus_auth_devise

🔑 Devise authentication for your Solidus store.
http://solidus.io
BSD 3-Clause "New" or "Revised" License
52 stars 124 forks source link

User.login can’t be modified once set #116

Open brchristian opened 6 years ago

brchristian commented 6 years ago

I’m using a vanilla Solidus 2.4.2 store with solidus_auth_devised.

It looks like the default user created has email: admin@example.com and login: admin@example.com. If I go to the /account/edit page, I can modify the User’s email.

Now I have a situation where I have email: foo@bar.com and login: admin@example.com. It seems there is simply no way to modify the login attribute once the user is created. What’s slightly weirder, it is email, not login, that is used to log in. :)

What should we do here?

My suggestion would be that if this extension is built to use the email attribute as the login by default, than we should either:

1) leave the actual login attribute as nil when creating a new user. 2) save any new changes to the email field to the login attribute as well.

@jhawthorn perhaps you can weigh in here. I’d be happy to prepare a PR once we settle on what we think the behavior should be. I’m just finding it weird to have accounts with this legacy login field set to whatever the initial value was and not able to be modified later. Let me know what you think!

spaghetticode commented 5 years ago

I'm looking at the current code, and it seems to me that the login field does not see much use here.

I'm wondering if this field still exists just for historical reasons. What about removing it (maybe only for new installations)?