Page MenuHomePhabricator

Return global contributions by temporary accounts given an IP address or range
Closed, ResolvedPublic

Description

Background

For full details see T337089: [Epic] Implement global contributions feature.

Technical background

Since T363358: Create extendable parent classes for special pages showing contributions lists, MediaWiki core has parent classes for building pages that display lists of contributions: ContributionsSpecialPage and ContributionsPager. These are currently used to make Special:Contributions, Special:DeletedContributions and (in CheckUser) Special:IPContributions.

For Special:GlobalContributions, we will need SpecialGlobalContributions and GlobalContributionsPager. This will work similarly to Special:IPContributions in normal (non-archive) mode. Since it needs to use the CheckUser tables, it will only show contributions from the last 90 days.

This task is for creating the pager (which fetches the results and displays them).

Acceptance criteria
  • GlobalContributionsPager is implemented, extending ContributionsPager
  • GlobalContributionsPager::doQuery logs access, similar to`IPContributionsPager`
  • GlobalContributionsPager::getRevisionQuery is overridden to fetch the latest contributions by temporary accounts from a given IP or range. It makes use of the cuci_temp_edit table and possibly other optimizations discussed in T355672: Investigate: How to make the GUC query performant. This is the bulk of the work for this task.
  • Submitting the form with an IP address or range fetches the latest revisions from temporary accounts using those IP addresses for all wikis in this wiki farm (limit to 20 per wiki)
  • Results are displayed in a paginated list and sorted by descending timestamp
  • Visibility of contributions (hidden users, suppression, etc) works the same as for the other contributions special pages
  • IP reveal is not available on this page (since IP look-ups that are not local would fail)

Details

Related Changes in Gerrit:
SubjectRepoBranchLines +/-
mediawiki/extensions/CheckUserwmf/1.43.0-wmf.28+48 -0
mediawiki/corewmf/1.43.0-wmf.28+72 -49
mediawiki/extensions/CheckUsermaster+545 -1
mediawiki/extensions/CheckUsermaster+48 -0
mediawiki/coremaster+72 -49
mediawiki/coremaster+2 -0
mediawiki/coremaster+55 -14
mediawiki/coremaster+3 -0
mediawiki/coremaster+15 -16
mediawiki/coremaster+5 -8
mediawiki/coremaster+25 -10
mediawiki/coremaster+11 -0
mediawiki/coremaster+39 -11
mediawiki/coremaster+112 -27
mediawiki/coremaster+66 -17
mediawiki/coremaster+322 -206
mediawiki/extensions/CheckUsermaster+3 -6
mediawiki/extensions/CheckUsermaster+8 -17
mediawiki/extensions/CheckUsermaster+144 -0
mediawiki/coremaster+31 -2
mediawiki/extensions/CheckUsermaster+1 -0
mediawiki/extensions/CheckUsermaster+19 -16
Show related patches Customize query in gerrit

Related Objects

StatusSubtypeAssignedTask
OpenNone
OpenNone
OpenNone
OpenNone
ResolvedSTran
ResolvedTchanders
ResolvedSTran
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
DeclinedPRODUCTION ERRORNone
ResolvedPRODUCTION ERRORDreamy_Jazz
ResolvedPRODUCTION ERRORDreamy_Jazz
DuplicatePRODUCTION ERRORNone
ResolvedSecurityNone
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedTchanders

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Assigning to @STran per Thalia's sabbatical document.

Change #1077960 had a related patch set uploaded (by STran; author: STran):

[mediawiki/extensions/CheckUser@master] [WIP] Query contributions globally on Special:GlobalContributions

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

Change #1078697 had a related patch set uploaded (by STran; author: STran):

[mediawiki/core@master] Update ContributionsPager to support Special:GlobalContributions

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

Change #1079317 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/extensions/CheckUser@master] Initialise Special:GlobalContributions only if CentralAuth is loaded

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

IP reveal is not available on this page (since IP look-ups that are not local would fail)

When searching for an IP address, this is not needed anyway. When searching for an IP range, the IP address for a particular contribution can be found by visiting the local wiki where the contribution was made.

Change #1079321 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/extensions/CheckUser@master] Remove IP reveal from Special:GlobalContributions

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

Change #1079317 abandoned by Tchanders:

[mediawiki/extensions/CheckUser@master] Initialise Special:GlobalContributions only if CentralAuth is loaded

Reason:

CentralAuth dependency was removed

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

Change #1079321 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Remove IP reveal from Special:GlobalContributions

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

Change #1077960 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Query contributions globally on Special:GlobalContributions

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

Change #1079946 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/extensions/CheckUser@master] GlobalContributionsPager: Use a join instead of two queries

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

Change #1080066 had a related patch set uploaded (by Kosta Harlan; author: Kosta Harlan):

[mediawiki/extensions/CheckUser@master] GlobalContributionsPager: Make use of the query builder construction utility

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

Change #1079946 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] GlobalContributionsPager: Use a join instead of two queries

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

Change #1080066 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] IPContributions/GlobalContributions: Make use of the query builder construction utility

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

Change #1080108 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/core@master] ContributionsPager: Split formatRow into separate methods

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

Change #1080112 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/core@master] ContributionsPager: Support article link for foreign revision rows

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

Change #1080108 merged by jenkins-bot:

[mediawiki/core@master] ContributionsPager: Split formatRow into separate methods

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

Change #1080454 had a related patch set uploaded (by STran; author: STran):

[mediawiki/core@master] Add ContributionsPager->isFromExternalWiki() helper function

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

Change #1080437 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/core@master] ContributionsPager: Make formatRow safe for for external revisions

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

Change #1080620 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/core@master] ContributionsPager: Show flags for external revisions

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

Change #1080630 had a related patch set uploaded (by STran; author: STran):

[mediawiki/core@master] Support external revisions in ContributionsPager->formatVisibilityLink()

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

Change #1080761 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/core@master] ContributionsPager: Show annotations for current external revisions

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

Change #1080762 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/core@master] ContributionsPager: Add comment about external tags display

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

Change #1080763 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/core@master] ContributionsPager: Show user links for external revisions

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

Change #1080764 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/core@master] ContributionsPager: Add docs about external comments display

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

Change #1081208 had a related patch set uploaded (by Tchanders; author: Tchanders):

[mediawiki/extensions/CheckUser@master] WIP Update GlobalContributionsPager to format external revision rows properly

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

Change #1081314 had a related patch set uploaded (by STran; author: STran):

[mediawiki/core@master] Support a source wiki field in ContributionsPager

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

Change #1081363 had a related patch set uploaded (by STran; author: STran):

[mediawiki/extensions/CheckUser@master] Add source wiki to contributions on Special:GlobalContributions

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

Change #1080437 abandoned by Tchanders:

[mediawiki/core@master] ContributionsPager: Make formatRow safe for for external revisions

Reason:

Moved formatting for external-wiki revisions to the extension: T377482

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

Change #1078697 abandoned by Tchanders:

[mediawiki/core@master] Support diff/history, date, and source wiki for Special:GC external revs

Reason:

Moved formatting for external-wiki revisions to the extension: T377482

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

Change #1080630 abandoned by Tchanders:

[mediawiki/core@master] Support external revisions in ContributionsPager->formatVisibilityLink()

Reason:

Moved formatting for external-wiki revisions to the extension: T377482

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

Change #1080454 abandoned by Tchanders:

[mediawiki/core@master] Add ContributionsPager->isFromExternalWiki() helper function

Reason:

Moved formatting for external-wiki revisions to the extension: T377482

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

Change #1080112 abandoned by Tchanders:

[mediawiki/core@master] ContributionsPager: Support article link for external revision rows

Reason:

Moved formatting for external-wiki revisions to the extension: T377482

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

Change #1080620 abandoned by Tchanders:

[mediawiki/core@master] ContributionsPager: Show flags for external revisions

Reason:

Moved formatting for external-wiki revisions to the extension: T377482

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

Change #1080761 abandoned by Tchanders:

[mediawiki/core@master] ContributionsPager: Show annotations for current external revisions

Reason:

Moved formatting for external-wiki revisions to the extension: T377482

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

Change #1080762 abandoned by Tchanders:

[mediawiki/core@master] ContributionsPager: Add comment about external tags display

Reason:

Moved formatting for external-wiki revisions to the extension: T377482

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

Change #1080763 abandoned by Tchanders:

[mediawiki/core@master] ContributionsPager: Show user links for external revisions

Reason:

Moved formatting for external-wiki revisions to the extension: T377482

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

Change #1080764 abandoned by Tchanders:

[mediawiki/core@master] ContributionsPager: Add docs about external comments display

Reason:

Moved formatting for external-wiki revisions to the extension: T377482

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

Change #1081208 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Update GlobalContributionsPager to format external revision rows

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

Change #1082203 had a related patch set uploaded (by STran; author: STran):

[mediawiki/core@wmf/1.43.0-wmf.28] Support template overrides in ContributionsPager

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

Change #1081314 merged by jenkins-bot:

[mediawiki/core@master] Support template overrides in ContributionsPager

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

Change #1081363 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Add source wiki to contributions on Special:GlobalContributions

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

Change #1082328 had a related patch set uploaded (by STran; author: STran):

[mediawiki/extensions/CheckUser@wmf/1.43.0-wmf.28] Add source wiki to contributions on Special:GlobalContributions

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

Change #1082203 merged by jenkins-bot:

[mediawiki/core@wmf/1.43.0-wmf.28] Support template overrides in ContributionsPager

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

Change #1082328 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@wmf/1.43.0-wmf.28] Add source wiki to contributions on Special:GlobalContributions

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

Mentioned in SAL (#wikimedia-operations) [2024-10-23T14:53:19Z] <stran@deploy2002> Started scap sync-world: Backport for [[gerrit:1082203|Support template overrides in ContributionsPager (T356292)]], [[gerrit:1082328|Add source wiki to contributions on Special:GlobalContributions (T356292)]]

Mentioned in SAL (#wikimedia-operations) [2024-10-23T14:55:46Z] <stran@deploy2002> stran: Backport for [[gerrit:1082203|Support template overrides in ContributionsPager (T356292)]], [[gerrit:1082328|Add source wiki to contributions on Special:GlobalContributions (T356292)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Mentioned in SAL (#wikimedia-operations) [2024-10-23T15:04:13Z] <stran@deploy2002> Finished scap sync-world: Backport for [[gerrit:1082203|Support template overrides in ContributionsPager (T356292)]], [[gerrit:1082328|Add source wiki to contributions on Special:GlobalContributions (T356292)]] (duration: 10m 53s)

<li> elements with "(current)" on Special:Contributions no longer have the mw-contributions-current class. The class is still in the code, so I assume this is by mistake and #1080108 had something to do with it.

<li> elements with "(current)" on Special:Contributions no longer have the mw-contributions-current class. The class is still in the code, so I assume this is by mistake and #1080108 had something to do with it.

Reported as T378132: mw-contributions-current css class missing from Special:Contributions

dom_walden subscribed.
Acceptance criteria
  • GlobalContributionsPager is implemented, extending ContributionsPager
  • GlobalContributionsPager::doQuery logs access, similar to`IPContributionsPager`

I have raised T379766.

  • GlobalContributionsPager::getRevisionQuery is overridden to fetch the latest contributions by temporary accounts from a given IP or range. It makes use of the cuci_temp_edit table and possibly other optimizations discussed in T355672: Investigate: How to make the GUC query performant. This is the bulk of the work for this task.
  • Submitting the form with an IP address or range fetches the latest revisions from temporary accounts using those IP addresses for all wikis in this wiki farm (limit to 20 per wiki)

I have raised T381269.

  • Results are displayed in a paginated list and sorted by descending timestamp

Sometimes I don't see the pagination interface (e.g. "older #"). It seems to be if the limit is equal to or greater than 20 * the number of wikis which have contributions. I have raised T381271.

  • Visibility of contributions (hidden users, suppression, etc) works the same as for the other contributions special pages
  • IP reveal is not available on this page (since IP look-ups that are not local would fail)

Yep.