Page MenuHomePhabricator

[Epic] CheckUser 2.0 Improvements
Open, MediumPublic

Description

Goal

The goal for this project is to make improvements to the CheckUser tool, so that checkusers and stewards are able to retrieve the information they need more quickly and easily.
This includes the following user stories:

  • As a Checkuser, I want to be able to obtain information for all the reported sock accounts together so that I can easily compare them.
  • As a Checkuser, I want to be able to check account information for a set of users so I can make a judgement call on whether that SPI (sockpuppet investigation) case deems a thorough CU check.
  • As a Checkuser, I want to be able to be able to have a timeline view of activity from the reported users, so that I can find patterns to determine if two accounts are operated by the same user.
  • As a Checkuser, I want to be able to filter and sort through the reported information so I can find useful information from the data.
  • As a Checkuser, I want to be able to easily export important information to CU wiki for longer term storage, so that I can refer back to it in future.

Metrics

TBD

Development plan

I: Groundwork
  1. Setup a new Special page in the CheckUser extension to build the improved version.
  2. Accept a series of usernames, IPs, ranges to run the CU check on
  3. Hitting 'submit' creates a CU log record for usernames being looked up
II: Preliminary check
  1. Show basic information about all the usernames, IPs in a tabular view. This includes:
    • Username
    • Account registration date
    • Accounts on which wikis
    • Edits on each of the wikis
    • Blocked status for each of the wikis
  2. Ability to highlight rows with matching fields (see mock)
III: Compare/Checkuser step
  1. Shows private information for users being looked up. This includes:
    • IPs
    • UA
    • Activity time period
    • Other editors from the same IP/IP range
  2. Ability to highlight rows with matching fields
  3. Ability to filter through the information based on:
    • Date-time of activity
    • Specific users/IPs
    • User-agents
  4. CIDR-generate functionality based on the IPs visible in the table
IV: Timeline view
  1. Shows a RecentChanges-style view of all the contributions (edits and log actions) for all the users being investigated in chronological order
  2. Ability to highlight rows with matching fields
  3. Ability to filter through the information based on:
    • Date-time of activity
    • Specific users/IPs
    • Type of activity: Edits vs Log actions

Testing plan

  1. The new Special page should work in parallel with the existing Special:CheckUser. Should only enabled on testwiki until it reaches a point where we feel it can be released more broadly.
  2. Can test the bigger changes (especially if they can risk the existing special page) on thegoodplace wiki

Open questions:

  • Do we need to support the block feature in CU? Can we integrate that with `Special:Block?
  • Do we need to keep the Duration field in the search?
  • Which export formats should we be supporting for the CU data?
  • Can we have a direct integration with CU-wiki when exporting the data?
  • What should be logged in CU logs and when?

Related Objects

StatusAssignedTask
OpenNone
OpenNone
OpenNiharika
OpenNiharika
OpenPrtksxna
DeclinedNone
OpenNone
OpenNiharika
OpenNone
ResolvedReedy
OpenNone
OpenNone
OpenNone
Opendmaza
OpenPrtksxna
OpenNone
OpenNone
Opendmaza
Resolveddbarratt
OpenTchanders
ResolvedTchanders
ResolvedTchanders
ResolvedTchanders
OpenTchanders
OpenTchanders
OpenTchanders
OpenNone
OpenNone
OpenNiharika
OpenNone

Event Timeline

Niharika triaged this task as Medium priority.Oct 23 2019, 4:43 AM
Niharika created this task.
Niharika created this object in space Restricted Space.
Niharika updated the task description. (Show Details)
Niharika updated the task description. (Show Details)Oct 23 2019, 8:29 AM
Niharika updated the task description. (Show Details)Oct 23 2019, 12:13 PM
Niharika moved this task from Untriaged to Backlog on the Anti-Harassment board.Oct 23 2019, 4:28 PM
Niharika updated the task description. (Show Details)Oct 30 2019, 4:40 PM
Niharika updated the task description. (Show Details)Oct 30 2019, 4:45 PM
Niharika renamed this task from [Epic] CheckUser Improvements to [Epic] CheckUser 2.0 Improvements .Nov 7 2019, 12:31 AM
Niharika shifted this object from the Restricted Space space to the S1 Public space.
Restricted Application added a subscriber: MGChecker. · View Herald TranscriptNov 7 2019, 12:31 AM

@dmaza & @Tchanders

Looking at the mocks: https://prtksxna.github.io/wmf-cu-prototype/

I think it would be best if the form at the top, would

  1. POST
  2. Log the Request (with the reason)
  3. Store the users in the checkuser's session with Session::set() (with some sort of expiration?)
  4. Redirect back to the same page

Then on page load:

  1. Get the users out of the Session as the field value. (hitting Submit would do the process above over again)
  2. Use the users from the Session as the basis for the queries.

I think we might make each tab a "subpage" of the special page? Maybe "preliminary" is the default?

The Filters, Sorts, and Pages should be in the query string. Each time the page loads, it will read the data from the session (above) and then the data from the query string.

Rxy added a subscriber: Rxy.Fri, Nov 29, 10:39 AM

I'm having plan to backport of GlobalCheckUser (T212779) UI to CheckUser.

I guess this task and related tasks are may caused conflicting above plan.
Someone already start writing a code?

Ladsgroup added a subscriber: Ladsgroup.