OK, here's the plan:
1. We disallow the creation of new users (for the following, which won't take long)
2. We add a "user_single_id" field in the user table of each wikipedia, initially 0
3. We generate a list from all wikipedias, containing user name and user password hash
4. We merge every two entries on our list (#3) that have both the same name *and* the same password hash (same name and password = same user)
5. We create a new, separate user database
6. We fill it with all unique user names from our list, and fill the "user_single_id" for every user with that name in all wikipedias the "user_id" from the new database
7. We generate a new user in our new database for each remaining 'double' from out list; its password hash is blanked
8. We allow creating user names again (see, didn't take *that* long:-) with the following mechanism:
* New users can *only* be created if that user name isn't already taken in the new database, where it will then be added * The 'local' wikipedia database gets a new user account as well, with the "user_id" set to the "user_single_id" from the new database
A user trying to log in evokes the following rules: * If there is no user in the local database with that name, password is checked against the new database; if it matches, a local account is created * If the "user_single_id" is *non-zero*, password is checked against the new database * If the "user_single_id" is *zero*, password is checked against the local database
For any user with a conflicting user name, that means (s)he can still log on to the usual wikis, but can't create new accounts on other wikipedias under that name.
REASOING: * Easy to set up (new db and a script) * Minor changes to the MediaWiki scripts (login and preferences only) * Minor changes to the database (adding a single field) * Everyone can keep working under his/her username * Most users can instantly enjoy the new, unified login * Conflicting user names can be easily listed and resolved in time * New functions (My contributions/Watchlist/Recent changes in all wikipedias) can be introduced over time
Comments? Volunteers? ;-)
Magnus