Page MenuHomePhabricator

Enable read new support in Special:CheckUser's 'Get users' mode
Closed, ResolvedPublic

Description

Now that CheckUser writes to the new tables for event table migration (T330158), reading from these tables when the migration stage is set to read new can commence.

This task is to add support to read new in Special:CheckUser's 'Get users' mode.

Acceptance criteria
  • Alias the current query info fields in CheckUserGetUsersPager to prepare for migration
  • Add code to read from the two new tables when reading new in CheckUserGetUsersPager

Event Timeline

Change 884135 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] Prepare CheckUserGetUsersPager for event table migration

https://gerrit.wikimedia.org/r/884135

Change 884135 abandoned by Dreamy Jazz:

[mediawiki/extensions/CheckUser@master] Prepare CheckUserGetUsersPager for event table migration

Reason:

Replaced with Ia52d8ac125f902fa8549866816300d06327e1a5f

https://gerrit.wikimedia.org/r/884135

Dreamy_Jazz renamed this task from Use the CheckUserUnionSelectQueryBuilder in Special:CheckUser's 'Get users' mode to Enable read new support in Special:CheckUser's 'Get users' mode.Sep 6 2023, 8:01 PM
Dreamy_Jazz updated the task description. (Show Details)

Change 955390 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] [WIP] Implement read new support for CheckUserGetUsersPager

https://gerrit.wikimedia.org/r/955390

Change 955390 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Implement read new support for CheckUserGetUsersPager

https://gerrit.wikimedia.org/r/955390

Suggested QA steps (requires a local instance to test):

  1. Install the CheckUser extension
  2. Check that no definition of $wgCheckUserEventTablesMigrationStage exists in your LocalSettings.php, and remove it if present.
  3. Add $wgCheckUserLogLogins = true; into your LocalSettings.php if not already present
  4. Create a few testing accounts
  5. Make a few testing edits, log events (such as moves), and log in and out of the testing accounts
  6. Log into an account with the checkuser right
  7. Open Special:CheckUser, enter one account username you created in step 4 to the "Username" field, change the check subtype to 'Get IP Addresses', and then run a check.
  8. Click on the IP address shown in the results list
  9. Change the check type to 'Get users' on this new page and run the check
  10. Verification step 1: Ensure you see the accounts you created in step 4 in the results list
  11. Save a screenshot of the results for later comparison
  12. Add $wgCheckUserEventTablesMigrationStage = SCHEMA_COMPAT_NEW; to your LocalSettings.php file
  13. Press the check button on the 'Get users' check opened in step 9
  14. Verification step 2: Verify that the results list did not visually change.

If QA needs suggested steps that work on patchdemo, please ping me and I will create them.

dom_walden subscribed.

I compared the HTML output of "Get users" with SCHEMA_COMPAT_READ_OLD and SCHEMA_COMPAT_READ_NEW for all the IP addresses I had on my local wiki. There were no differences.

Test environment: local docker CheckUser 2.5 (d121f43) 16:23, 27 September 2023.