I've thought of an idea for migration without migrating user accounts. I could suck in the current threads and set all the users to a special legacy user. I can store the legacy time, legacy user name, and legacy tagline with the post and display those instead when a post is created by the legacy user.
Those posts would be a little different in that the user name wouldn't be a link and you couldn't block the user, but I don't think that would be that big a deal.
What's the issue with migrating user accounts?
There are a lot of user accounts, many that aren't active. In order to migrate users we'd need to store the old password hashes which aren't secure. Even if users are required to change the password immediately, all those inactive hashes will still be sitting around. The database will be much better protected, but we can't count on the database never being breached and those old passwords being cracked.
We can migrate the accounts and make everyone change their passwords without copying the old password hashes.
That's not much different than creating a new account. I suppose we could match on user name if the user wants and load that data.
I just think that this "legacy account" idea you're proposing would be too confusing, and that there should be more continuity between the two sites.
People really do come back to the site after a very long time, and we shouldn't make it harder for them.
The part that I get caught up on is how to authenticate a returning user without keeping the insecure hashes.
We could do name matching, but that would make it really easy to hijack an existing account. We could authenticate by using the profile e-mail, but that might be out of date and then the user is kinda stuck since they can't create a new account since there is an existing one.
I don't know. It's a tricky problem.
You keep the old hashes (for a short period of time). The first time a user logs in, you prompt them for a new password and/or generate a new hash. After the grace period has expired, the old passwords are purged. Then a user would have to either use their account email address, or the admin contact form, same as always.
I just don't want there to be so much friction that we lose people during the board transition.
A grace period could work.
Were you saying you were willing to help with migration, Tom? If you need access to the code, just get a gitlab account and I can hook you up.