Thank you for this feature, it is huge for my use case! I am currently porting our forums from phpBB to Discourse and wanted to use SSO via a custom provider. Since we could not easily link SSO accounts to our legacy accounts and works flawlessly!
If anyone else is going to use this make a note of this:
rake users:merge['mattbr_sso', 'mattbr_legacy'] will not work as expected, the SSO will not go through. However:
rake users:merge['mattbr_legacy', 'mattbr_sso'] works perfectly and allows you to migrate all the posts into the SSO account.
When using the ‘User Event’-webhook created or login (or approved?) the duplicates will be existent on a connected site as well and one might want an automatism to clean them up as well, if the connected site supports that.
I haven’t used webhooks yet but plan to. On my connected site (using Discourse as SSO provider) the users are only created at first login for now. + I had duplicate users in my old forum before migrating to Discourse which I was looking forward to consolidate once this feature becomes available.
Yes, it will. I should be able to make this happen for the 2.0 release.
You will have to update the user’s created_at manually if you want to set it to the oldest post. The merge process uses the created_at from either the source or target user – whatever date is earlier.
Any chance the staff action log could better show what happens to users when they are merged? Here’s how it looks now - just shows that system has deleted the user but no context. The details only show some info about the user that got deleted as a result of the merge.
How about adding a staff note along the lines of “Username with email was merged to this account, date”
This is what I did when I was merging accounts manually. Probably more work than a staff action log entry, but might be useful information at some point later.
Is there an easy way to change which email address is primary?
Here’s my use case:
imported user with email user@defunctdomain.com emails from user@fancynewemail.com which creates a staged user. After a few PMs with the staged user, I merge the accounts, but the primary address is still the old one. And from the web interface I can’t change the email in his profile because it’s already taken. By him.
Perhaps this is a bug in the multiple email address model and not a complaint for here.
The simple solution, which took me much to long to come up with, is to delete the old address.
Is there something easier that I should do?
I need to keep the old username with the new email. The staged user is the real problem. Perhaps I should just delete the staged user, but then I don’t have an easy way to reply to them to tell them what happened.
It’s pretty cumbersome to merge[‘newname_newemail’,'oldname_bogusemail"] and then have to do something like