Page MenuHomePhabricator

Investigate on how many wikis users have local groups
Closed, ResolvedPublic

Description

For T414952: Prevent 2FA-required users from disabling their last 2FA method, we'll need to query all wikis to check if user can have 2FA disabled (from the perspective of that wiki). An initial idea is to list all wikis, where user has any groups and then make API calls to these wikis. Depending on the typical number of requests, this can be feasible or not.

Questions

  • What's the typical number of wikis, where UWERs have local groups?
  • Should we define some groups that we'll ignore for the purpose of including a wiki in the list of wikis to make the API call to?
    • For example, should we skip wikis where user is only in autopatrol or similar low-level groups?

Event Timeline

(Off topic) Good task because I have this (meta:User:魔琴/MarkRights/code/global) and I really need local groups data :)

I've went through the data. If we count wikis, where a user has any groups, there will be some users with groups on 100+ wikis:

11015 wikis: 1 users
2839 wikis: 1 users
3817 wikis: 1 users
4217 wikis: 1 users
5211 wikis: 1 users
6205 wikis: 1 users
7196 wikis: 1 users
8189 wikis: 1 users
9183 wikis: 1 users
10179 wikis: 1 users
11178 wikis: 1 users
12174 wikis: 1 users
13160 wikis: 1 users
14153 wikis: 1 users
15141 wikis: 1 users
16131 wikis: 1 users
17129 wikis: 1 users
18128 wikis: 1 users
19125 wikis: 2 users
20124 wikis: 1 users
21120 wikis: 1 users
22119 wikis: 1 users
23112 wikis: 1 users
24111 wikis: 1 users
25110 wikis: 1 users
26109 wikis: 2 users
27105 wikis: 1 users
2896 wikis: 1 users
2995 wikis: 1 users
3092 wikis: 1 users
3190 wikis: 1 users
3288 wikis: 2 users
3376 wikis: 1 users
3475 wikis: 1 users
3570 wikis: 2 users
3669 wikis: 1 users
3767 wikis: 1 users
3865 wikis: 2 users
3963 wikis: 2 users
4062 wikis: 1 users
4161 wikis: 1 users
4260 wikis: 1 users
4359 wikis: 3 users
4456 wikis: 1 users
4555 wikis: 2 users
4653 wikis: 3 users
4752 wikis: 2 users
4849 wikis: 1 users
4948 wikis: 2 users
5047 wikis: 3 users
5146 wikis: 2 users
5245 wikis: 1 users
5344 wikis: 5 users
5443 wikis: 2 users
5540 wikis: 3 users
5639 wikis: 1 users
5738 wikis: 2 users
5837 wikis: 3 users
5936 wikis: 2 users
6035 wikis: 3 users
6134 wikis: 5 users
6233 wikis: 5 users
6332 wikis: 3 users
6431 wikis: 2 users
6530 wikis: 3 users
6629 wikis: 4 users
6728 wikis: 2 users
6827 wikis: 10 users
6926 wikis: 12 users
7025 wikis: 7 users
7124 wikis: 5 users
7223 wikis: 12 users
7322 wikis: 8 users
7421 wikis: 9 users
7520 wikis: 13 users
7619 wikis: 9 users
7718 wikis: 14 users
7817 wikis: 23 users
7916 wikis: 20 users
8015 wikis: 33 users
8114 wikis: 40 users
8213 wikis: 48 users
8312 wikis: 64 users
8411 wikis: 83 users
8510 wikis: 123 users
869 wikis: 177 users
878 wikis: 221 users
887 wikis: 339 users
896 wikis: 587 users
905 wikis: 977 users
914 wikis: 1791 users
923 wikis: 3914 users
932 wikis: 14040 users
941 wikis: 236755 users

However, many of the groups are non-sensitive ones, such as extendedconfirmed or uploader. Therefore, I've run another check, this time counting only wikis where user has at least one non-excluded groups.

The excluded groups were: extendedconfirmed, uploader, autoreview, editor, autopatrolled, bot, rollbacker, ipblock-exempt, patroller, filemover, translationadmin, confirmed, event-organizer, accountcreator. I chose them based on their high or moderate frequency and low sensitivity, as well as the likeliness to reduce the wiki counts in the resulting data.

114 wikis: 1 users
213 wikis: 3 users
312 wikis: 2 users
411 wikis: 2 users
510 wikis: 5 users
69 wikis: 10 users
78 wikis: 10 users
87 wikis: 32 users
96 wikis: 29 users
105 wikis: 73 users
114 wikis: 120 users
123 wikis: 322 users
132 wikis: 1243 users
141 wikis: 17685 users

Restricting the set of user groups of interest by excluding certain well-known groups reduces the number of wikis to manageable amounts. Invoking an API call to a few wikis shouldn't impose significant performance issues on the 2FA enforcement check. (At least, the performance shouldn't suffer as much as GlobalContributions)

The counts do include most of the system accounts (which typically have bot or other rights, so they don't appear in the second listing), but AbuseFilter was removed from the analysis, due to using many names, so being counted multiple times otherwise.