Page MenuHomePhabricator

Update ChangeTagsStore database query methods for rights-restricted tags
Closed, ResolvedPublic

Description

Summary

The ChangeTagStore methods of modifyDisplayQueryBuilder, modifyDisplayQuery, and makeTagSummarySubquery need to be updated for rights-restricted tag support. This task is to focus on that and to update callers to these methods to pass an Authority instance

Background

  • Other ChangeTagsStore methods have been updated for rights-restricted tags
    • The remaining methods are those which modify the database queries by MediaWiki PHP code
  • This task focuses on updating these methods to appropriately remove rights-restricted tags from queries when the viewing user cannot see them
    • In a sense this is like applying the logic from ChangeTagsStore::filterViewableTags but to the SQL queries
    • This means the methods need to accept an Authority instance which is used to ensure the DB queries only select private tags that the user can see
    • The Authority instance will need to be optional initially, by making the default as null (which should mean no rights restricted tags are provided)
      • Eventually we should deprecate the ability for the Authority argument to be null so that all callers provide an appropriate authority (either the user, a null authority, or a ultimate authority)

Acceptance criteria

  • The ChangeTagStore methods of modifyDisplayQueryBuilder, modifyDisplayQuery, and makeTagSummarySubquery methods support right-restricted tags
  • Callers of these methods are updated to pass an appropriate Authority instance for the viewing user
  • The ability for a caller of these methods to provide null for the Authority argument is hard-deprecated
  • (optional) ChangeTagStore::modifyDisplayQuery is hard deprecated after removing it's last WMF deployed use (given it's currently deprecated)

Event Timeline

Dreamy_Jazz added a subscriber: kostajh.

You can use @kostajh's patch at https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1301365 as a basis for this (though it may need updating and changes)

Change #1309214 had a related patch set uploaded (by Mpostoronca; author: Mpostoronca):

[mediawiki/extensions/CheckUser@master] GlobalContributions: Pass viewer Authority to tag display query

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

Change #1309216 had a related patch set uploaded (by Mpostoronca; author: Mpostoronca):

[mediawiki/extensions/FileImporter@master] tests: Pass an Authority to ChangeTagsStore::modifyDisplayQuery

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

Change #1309217 had a related patch set uploaded (by Mpostoronca; author: Mpostoronca):

[mediawiki/core@master] ChangeTags: Support restricted tags in tag summary queries

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

Change #1309218 had a related patch set uploaded (by Mpostoronca; author: Mpostoronca):

[mediawiki/core@master] ChangeTags: Pass viewer Authority to tag summary query callers

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

Change #1309219 had a related patch set uploaded (by Mpostoronca; author: Mpostoronca):

[mediawiki/core@master] ChangeTags: Deprecate tag summary queries without an Authority

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

Change #1309674 had a related patch set uploaded (by Mpostoronca; author: Mpostoronca):

[mediawiki/core@master] pagers: Use ChangeTagsStore::modifyDisplayQueryBuilder

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

Change #1309217 merged by jenkins-bot:

[mediawiki/core@master] ChangeTags: Support restricted tags in tag summary queries

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

Change #1309674 merged by jenkins-bot:

[mediawiki/core@master] pagers: Use ChangeTagsStore::addTagsToDisplayQuery

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

Change #1309214 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] GlobalContributions: Pass viewer Authority to tag display query

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

Change #1309218 merged by jenkins-bot:

[mediawiki/core@master] ChangeTags: Pass viewer Authority to tag summary query callers

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

Change #1309216 merged by Dreamy Jazz:

[mediawiki/extensions/FileImporter@master] tests: Use ChangeTagsStore::addTagsToDisplayQuery

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

Change #1309219 merged by jenkins-bot:

[mediawiki/core@master] ChangeTags: Hard-deprecate legacy query methods and null performers

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

Change #1311754 had a related patch set uploaded (by Mpostoronca; author: Mpostoronca):

[mediawiki/extensions/CirrusSearch@master] DeleteArchive: Migrate to listArchivedRevisions()

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

Change #1311755 had a related patch set uploaded (by Mpostoronca; author: Mpostoronca):

[mediawiki/core@master] ArchivedRevisionLookup: Hard-deprecate listRevisions()

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

Change #1311754 merged by jenkins-bot:

[mediawiki/extensions/CirrusSearch@master] DeleteArchive: Migrate to listArchivedRevisions()

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

Change #1311755 merged by jenkins-bot:

[mediawiki/core@master] ArchivedRevisionLookup: Hard-deprecate listRevisions()

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

Change #1311823 had a related patch set uploaded (by Mpostoronca; author: Mpostoronca):

[mediawiki/extensions/Video@master] SpecialUndeleteWithVideoSupport: Migrate to listArchivedRevisions()

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

Change #1311823 abandoned by Mpostoronca:

[mediawiki/extensions/Video@master] SpecialUndeleteWithVideoSupport: Migrate to listArchivedRevisions()

Reason:

not needed, as per the comment

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

Dreamy_Jazz updated the task description. (Show Details)

Changes appear to be working on test.wikipedia.org, moving to done