Page MenuHomePhabricator

Show protection status of pages listed as sitelinks on each Wikidata item
Open, Needs TriagePublic

Description

As a user I want to see the current probable status of protection (unprotected, semi-protected, fully protected) for all the Wikimedia pages that are listed as interwikis on every Wikidata item page in order to make decisions related to the protection status of the Wikidata item or the Wikimedia pages. See also T205783.

Problem: Right now we have to manually check the protection status of the Wikimedia pages linked as sitelinks from each Wikidata item by loading these pages individually.

Example:

Screenshots/mockups:

BDD
GIVEN
AND
WHEN
AND
THEN
AND

Acceptance criteria:

  • It's easy to know which Wikimedia pages are currently unprotected, semi-protected and fully protected by just looking at the list of sitelinks on each Wikidata item page.

Open questions:

  • Should we show more information about the protection status (e.g., duration)? It might be interesting to distinguish temporary protections from indefinite ones.

Event Timeline

The protection status for each wiki is recorded in that wiki's database. Running a separate query for each wiki takes too long, especially since this information is not cacheable, and has to be re-checked on every page view. The query could be batched per db-cluster using a UNION query, but I'm not sure if there is a good way to get the per-wiki configuration info necessary for this.

The fact that this information is not cacheable also means it cannot be included in the web cache (CDN) for anonymous views. It would probably have to be added dynamically, using JS, which means an additional HTTP round trip.

@daniel, would it be possible/convenient for Wikibase Client to propagate the protection status to Wikibase Repository each time this status changes or a sitelink is added/removed/modified?

@abian this would perhaps be possible, though it would mean introducing a new cross-wiki event flow. Each client wiki would have to trigger a RefreshLinksJob for the entity page on the repo. But the repo would still have to poll the protection status of all wikis, or it would have to cache that info semi-permanently somewhere, somehow.

So, this is all doable in theory, but quite a but of work in practice. Maybe a "check protection status" gadget that just pulls the info in when a button is clicked would be sufficient. It would certainly be much easier to do.

Yeah, knowing that resources are limited, a gadget is probably fine for this. Although I was thinking of this task as a possible first step for T205783. Maybe we should use the information about protection status for more things... or maybe not, I suppose that depends on the resources of the development team and on if these resources are enough to address T205783 at the Wikibase level.

I guess this decision should come from the development team and I'll be happy with it whatever it is. But it's clear that we have to move on and reduce vandalism or its impact in some way, and I'm sure both Wikipedia and Wikidata communities will support any effort in this sense.