Page MenuHomePhabricator

Hide anons and logged in users filters don't work with Wikidata changes
Closed, ResolvedPublic

Description

Hide anonymous users | Hide logged-in users filters are incompatible with the Wikidata changes.

These filters depend on rc_user (id) in the recentchanges table. It is set to 0 for anons and set to something other than 0 for logged in users.

For Wikimedia, an option would be to check central auth and assign the rc_user id accordingly if it's a linked account with Wikidata, and to 0 if the user was an IP on wikidata. There's still the question of what id to assign non-linked users.

For external Wikibase Client installs, central auth obviously won't work and we need another way to do this.


Version: master
Severity: normal

Details

Reference
bz42475

Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 1:01 AM
bzimport set Reference to bz42475.

(In reply to comment #0)

For Wikimedia, an option would be to check central auth and assign the rc_user
id accordingly if it's a linked account with Wikidata, and to 0 if the user was
an IP on wikidata.

What if the user was logged in on wikidata, but does not have an account on the local wiki? Then there is no user ID that can be used. I think that happens quite frequently, e.g. for people coming from en.wikipedia to wikidata - they won't have an account or user ID e.g. on fr.wikipedia.

Other things we could do:

  • "anon" could be defined as User ID 0 AND change_type != external. That will then not filter external anons.
  • Use user ID -1, not 0, when injecting wikidata changes. Might confuse other code though.

I can't think of a really good soltuion except for a separate rc_anon field in core.

Change I4b49a0c2: Hide anons and logged in users filters with Wikidata changes

Verified in Wikidata demo sprint 25

Change I16eee28a: (bug 42475) follow up, make sure rc_user id gets set correctly and allow filter to work

Restricted Application added a subscriber: StudiesWorld. · View Herald Transcript