Admin tools development/Global rename

Patch: gerrit:92468 Bug: bugzilla:14862

How it works
  • Status of a user's rename is stored in the centralauth.renameuser_status table
    • This table is intended to be small and constantly updating
  • Steward goes to Special:GlobalRenameUser, and starts the process
    • The globaluser table is updated
    • Jobs are queued on each wiki where the account is attached. Each job:
      • Updates the wiki's row in renameuser_status to "inprogress"
      • runs the RenameuserSQL code, which updates the user rows, log entries, and queues more jobs for revision and archive tables
      • Using the RenameUserComplete hook, update the localnames table. This preserves the attached date/method columns.
      • moves the user's userpages if that option was selected. The steward is assumed to have the proper rights to do so.
      • Delete's the wiki's row in the renameuser_status table
    • A log entry is added to the wiki from where the rename was started
  • If a rename is in progress, a user who tries to login to either the old name or the new name, will not be able to do so.
  • A hook is added to UserLoadFromSession which also does a similar check
  • Special:RenameProgress will show what wikis are still being updated for a specific user