Page MenuHomePhabricator

Add an AbuseFilter variable for global edit count of the user
Closed, ResolvedPublicFeature

Description

We often use expressions like user_editcount < 10 in order to apply a filter only to new accounts. Such a filter can disrupt the work of globally active users who don't have enough edits on the wiki in concern. Something like user_global_editcount would allow admins to choose to exempt globally established users.

Event Timeline

whym renamed this task from Add a variable for global edit count of the user to Add an AbuseFilter variable for global edit count of the user.Mar 19 2016, 3:22 AM
whym updated the task description. (Show Details)

See for example https://ja.wiktionary.org/w/index.php?title=%E7%89%B9%E5%88%A5:%E4%B8%8D%E6%AD%A3%E5%88%A9%E7%94%A8%E8%A8%98%E9%8C%B2&wpSearchUser=Johan+%28WMF%29 - where @Johan's edit were prevented by a filter which was supposed to stop a long term abuse known to use new accounts.

Change 341368 had a related patch set (by Matěj Suchánek) published:
Add an AbuseFilter variable for global edit count of the user

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

I -2'd the patch as the current implementation of fetching global user edit count is too slow. I think the options we have to move forward are:

  • Make fetching global user edit count faster
  • Implement some kind of global autoconfirmed, which would fix the problem in the original report.

I think the second one is probably easier.

Change 341368 abandoned by Matěj Suchánek:
Add an AbuseFilter variable for global edit count of the user

Reason:
Stalled for 2 years, performance concerns

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

I -2'd the patch as the current implementation of fetching global user edit count is too slow. I think the options we have to move forward are:

  • Make fetching global user edit count faster
  • Implement some kind of global autoconfirmed, which would fix the problem in the original report.

I think the second one is probably easier.

What about adding a global edit count to the globaluser table, for the same reason we have on in the core user table?

Current table:

MariaDB [centralauth_p]> describe globaluser;
+------------------------------+---------------------------------------+------+-----+---------+-------+
| Field                        | Type                                  | Null | Key | Default | Extra |
+------------------------------+---------------------------------------+------+-----+---------+-------+
| gu_id                        | int(11)                               | NO   |     | 0       |       |
| gu_name                      | varbinary(255)                        | YES  |     | NULL    |       |
| gu_enabled                   | varbinary(14)                         | NO   |     |         |       |
| gu_enabled_method            | enum('opt-in','batch','auto','admin') | YES  |     | NULL    |       |
| gu_home_db                   | varbinary(255)                        | YES  |     | NULL    |       |
| gu_email                     | binary(0)                             | YES  |     | NULL    |       |
| gu_email_authenticated       | binary(0)                             | YES  |     | NULL    |       |
| gu_salt                      | binary(0)                             | YES  |     | NULL    |       |
| gu_password                  | binary(0)                             | YES  |     | NULL    |       |
| gu_locked                    | tinyint(1)                            | NO   |     | 0       |       |
| gu_hidden                    | varbinary(255)                        | NO   |     |         |       |
| gu_registration              | varbinary(14)                         | YES  |     | NULL    |       |
| gu_password_reset_key        | binary(0)                             | YES  |     | NULL    |       |
| gu_password_reset_expiration | binary(0)                             | YES  |     | NULL    |       |
| gu_auth_token                | binary(0)                             | YES  |     | NULL    |       |
+------------------------------+---------------------------------------+------+-----+---------+-------+
Aklapper changed the task status from Stalled to Open.Nov 2 2020, 5:34 PM

The previous comments don't explain who or what (task?) exactly this task is stalled on ("If a report is waiting for further input (e.g. from its reporter or a third party) and can currently not be acted on"). Hence resetting task status, as tasks should not be stalled (and then potentially forgotten) for years for unclear reasons.

(Smallprint, as general orientation for task management:
If you wanted to express that nobody is currently working on this task, then the assignee should be removed and/or priority could be lowered instead.
If work on this task is blocked by another task, then that other task should be added via Edit Related Tasks...Edit Subtasks.
If this task is stalled on an upstream project, then the Upstream tag should be added.
If this task requires info from the task reporter, then there should be instructions which info is needed.
If this task needs retesting, then the TestMe tag should be added.
If this task is out of scope and nobody should ever work on this, or nobody else managed to reproduce the situation described here, then it should have the "Declined" status.
If the task is valid but should not appear on some team's workboard, then the team project tag should be removed while the task has another active project tag.)

Change 758120 had a related patch set uploaded (by Tim Starling; author: Tim Starling):

[mediawiki/extensions/CentralAuth@master] Track global user edit counts in a DB table

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

Change 341368 restored by Matěj Suchánek:

[mediawiki/extensions/CentralAuth@master] Add an AbuseFilter variable for global edit count of the user

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

Change 769561 had a related patch set uploaded (by Tim Starling; author: Tim Starling):

[mediawiki/extensions/CentralAuth@wmf/1.38.0-wmf.25] Track global user edit counts in a DB table

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

Change 758120 merged by jenkins-bot:

[mediawiki/extensions/CentralAuth@master] Track global user edit counts in a DB table

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

Change 769561 merged by jenkins-bot:

[mediawiki/extensions/CentralAuth@wmf/1.38.0-wmf.25] Track global user edit counts in a DB table

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

matej_suchanek changed the task status from Open to In Progress.Mar 11 2022, 9:54 AM
matej_suchanek claimed this task.

This should get a mention in tech news, like the other new variables/functions have been getting.

Change 341368 merged by jenkins-bot:

[mediawiki/extensions/CentralAuth@master] Add an AbuseFilter variable for global edit count of the user

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

This should get a mention in tech news, like the other new variables/functions have been getting.

Would this be an accurate summary?

A new user_global_editcount variable can be used in abuse filters to avoid affecting globally active users.

(Drafts always appreciated!)

matej_suchanek changed the subtype of this task from "Task" to "Feature Request".
matej_suchanek removed a project: Patch-For-Review.

Would this be an accurate summary?

A new user_global_editcount variable can be used in abuse filters to avoid affecting globally active users.

(Drafts always appreciated!)

Yes, it explains well the intent, too.