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

StatusSubtypeAssignedTask
OpenNone
ResolvedMar 19 2020dmaza
OpenNone
Open Niharika
Open Niharika
ResolvedTchanders
OpenNone
Resolveddbarratt
ResolvedTchanders
OpenNone
Open Niharika
OpenNone
ResolvedReedy
OpenNone
OpenFeatureNone
Resolvedsbassett
ResolvedTchanders
OpenNone
Resolveddmaza
Resolveddmaza
ResolvedTchanders
ResolvedTchanders
Resolveddmaza
Resolveddbarratt
ResolvedTchanders
ResolvedTchanders
ResolvedTchanders
ResolvedTchanders
ResolvedTchanders
ResolvedTchanders
ResolvedTchanders
ResolvedTchanders
ResolvedTchanders
ResolvedTchanders
ResolvedTchanders
Resolveddmaza
Resolveddbarratt
Resolved Niharika
ResolvedJun 2 2020dmaza
ResolvedJun 2 2020dmaza
ResolvedMar 25 2020dmaza
ResolvedMay 12 2020Tchanders
ResolvedJun 2 2020Tchanders
ResolvedJun 2 2020dbarratt
DeclinedMay 12 2020dmaza
Resolveddmaza
ResolvedDreamy_Jazz

Event Timeline

Niharika created this task.
Niharika created this object in space Restricted Space.
Niharika updated the task description. (Show Details)
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.

@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.

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?

Niharika moved this task from Now to Future on the AHT-Roadmap board.
Niharika moved this task from Future to Next on the AHT-Roadmap board.