Page MenuHomePhabricator

RenameUser should support wiki farm setups which use $wgShared* globals
Open, MediumPublic


Using $wgSharedDB, $wgSharedTables (and $wgSharedPrefix) is basically the recommended way to set up a wiki farm, especially when starting from scratch (see However, currently this means that users cannot be (easily) renamed since RenameUser operates only on the current database, no matter what. If you have, say, five wikis or so, it's probably relatively easy to run a bunch of SQL queries against all five DBs. This is not the case when you have thousands of wikis, as ShoutWiki has (currently almost 6k wikis).

This is and has been a non-issue for WMF wikis since WMF sites use the CentralAuth extension, which provides the global user renaming functionality. CentralAuth is not an acceptable solution for non-WMF wikis, as it's extremely complicated to set up and even CA's extension info page on recommends $wgSharedDB & $wgSharedTables instead.


Event Timeline

ashley created this task.Jul 6 2015, 7:52 AM
ashley raised the priority of this task from to Medium.
ashley updated the task description. (Show Details)
ashley added subscribers: ashley, Legoktm, lcawte and 2 others.
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptJul 6 2015, 7:52 AM

We could probably take most of the code from GlobalRename in CentralAuth and make it not-dependent upon CA. I think you'd still want to have a global renameuser_status table and use the job queue.

Just taking a quick look at the LocalRenameUserJob class (which is where most of the work is done), it's mostly not CA-specific, except for the promotetoglobal option which isn't needed, and CA cache invalidation, which also won't be needed.

It may make sense to wait for T100263: Refactor Special:RenameUser to use FormSpecialPage to be finished first, as it'll be easier to do once the backend is separated from the frontend.

lcawte moved this task from Backlog to Upstream Wishlist on the ShoutWiki board.

Closed as that ticket was superseded by this ticket.