Page MenuHomePhabricator

Add an AbuseFilter variable for global edit count of the user
Open, Stalled, Needs TriagePublic

Description

We often use expressions like user_editcount < 10 in order to apply a filter only to new accounts. Such a filter can disturb 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 created this task.Mar 19 2016, 3:21 AM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptMar 19 2016, 3:21 AM
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)
Savh added a subscriber: Savh.May 30 2016, 11:04 PM
-jem- added a subscriber: -jem-.May 30 2016, 11:04 PM
Matiia added a subscriber: Matiia.May 30 2016, 11:19 PM
whym added a subscriber: Johan.Jun 5 2016, 3:15 AM

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.

Luke081515 added a subscriber: Luke081515.

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

Johan awarded a token.Mar 13 2017, 2:41 PM

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.

matej_suchanek changed the task status from Open to Stalled.Jun 20 2017, 8:16 AM

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

matej_suchanek removed matej_suchanek as the assignee of this task.Dec 27 2019, 4:33 PM
matej_suchanek removed a project: Patch-For-Review.
matej_suchanek added a subscriber: matej_suchanek.
DannyS712 added a subscriber: DannyS712.EditedApr 27 2020, 12:26 AM

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    |       |
+------------------------------+---------------------------------------+------+-----+---------+-------+