Wikipedia:Database reports/Inactive users with advanced permissions
Inactive users in user groups with a documented simple activity requirement, i.e. at least one edit within a certain amount of time. Deleted edits are seen by this query; revdelled and suppressed edits are not.
Three groups - administrator, bureaucrat, and interface administrator - specify that an "administrative action" (the first two) or "logged action" (the last) suffices in lieu of an edit. That's not checked for. Neither is the parallel 100-edit-per-5-years requirement for administrators and bureaucrats.
One group - mass message sender - does not document a firm activity requirement, but does say these users should not be "completely inactive". This query arbitrarily uses 12 months without edits.
{{database report
|sql=
WITH timeout_constants(tc_group, tc_localized, tc_months) AS
(VALUES
('abusefilter', 'Edit filter manager', 12)
,('abusefilter-helper', 'Edit filter helper', 12)
,('autoreviewer', 'Autopatrolled', 36)
,('bureaucrat', 'Bureaucrat', 12)
,('eventcoordinator', 'Event coordinator', 12)
,('extendedmover', 'Page mover', 12)
,('interface-admin', 'Interface administrator', 2) -- sic
,('massmessage-sender', 'Mass message sender', 12)
,('patroller', 'New page reviewer', 12)
,('sysop', 'Administrator', 12)
,('templateeditor', 'Template editor', 12)
-- While these seem like they should have inactivity requirements, I can't find any documented anywhere:
-- ,('accountcreator', 'Account creator', 1200)
-- ,('filemover ', 'File mover', 1200)
),
-- Eliminate some perennial false positives from alternate accounts.
-- These won't be listed if the primary account is in either sysop or the expired group.
alt_accounts(aa_alt, aa_primary) AS
(VALUES
('Ahect', 'Ahecht')
,('Drkay', 'DrKay')
,('In actu', 'Guerillero')
,(CHR(14850184), 'Ks0stm')
,('Ks0alt', 'Ks0stm')
,('Pharmboy', 'Dennis Brown')
,('SemiAutomatedTime', 'TheresNoTime')
,('Steel1943 (tester)', 'Steel1943')
),
timeouts(tm_group, tm_localized, tm_timestamp) AS
(SELECT tc_group,
tc_localized,
DATE_FORMAT(DATE_SUB(NOW(), INTERVAL tc_months MONTH), '%Y%m%d%H%i%s')
FROM timeout_constants)
SELECT u1.user_name AS 'user name',
u1.user_editcount AS 'edit count',
TO_CHAR(u1.user_registration) AS 'registration',
CASE
WHEN ar_timestamp IS NULL AND rev_timestamp IS NULL
THEN '(never)'
WHEN ar_timestamp IS NULL OR rev_timestamp >= ar_timestamp
THEN TO_CHAR(rev_timestamp)
ELSE
CONCAT(TO_CHAR(ar_timestamp), ' (deleted)')
END AS 'last edit',
GROUP_CONCAT(tm_localized ORDER BY SUBSTRING_INDEX(tm_localized, '|', -1) SEPARATOR ', ') AS 'groups'
FROM timeouts
JOIN user_groups AS ug1 ON ug1.ug_group = tm_group
JOIN actor_user ON actor_user = ug1.ug_user
LEFT JOIN revision_userindex
ON rev_id = (SELECT rev_id
FROM revision_userindex
WHERE rev_actor = actor_id
ORDER BY rev_timestamp DESC
LIMIT 1)
LEFT JOIN archive_userindex
ON ar_id = (SELECT ar_id
FROM archive_userindex
WHERE ar_actor = actor_id
ORDER BY ar_timestamp DESC
LIMIT 1)
JOIN user AS u1 ON u1.user_id = ug1.ug_user
LEFT JOIN alt_accounts ON aa_alt = u1.user_name
LEFT JOIN user AS uprimary ON uprimary.user_name = aa_primary
LEFT JOIN user_groups AS ugprimary
ON ugprimary.ug_user = uprimary.user_id
AND (ugprimary.ug_group = ug1.ug_group OR ugprimary.ug_group = 'sysop')
WHERE (rev_timestamp IS NULL OR rev_timestamp < tm_timestamp)
AND (ar_timestamp IS NULL OR ar_timestamp < tm_timestamp)
AND ugprimary.ug_user IS NULL
-- we don't enforce these timeouts on staff accounts
AND u1.user_name NOT LIKE '% (WMF)'
AND u1.user_name NOT LIKE '%-WMF'
-- User:Edit filter is a dummy account for the autoblocking feature of edit filters
AND u1.user_name <> 'Edit filter'
GROUP BY ug1.ug_user
ORDER BY 4;
|wikilinks = 1:2
|interval = 7
}}
class="wikitable sortable" style="overflow-wrap: anywhere" |
scope="col" | user name
! scope="col" | edit count ! scope="col" | registration ! scope="col" | last edit ! scope="col" | groups |
---|
OutreachDashboardBot
| 1 | 2019-01-24 02:26:02 | 2019-01-24 02:28:48 |
Diako1971
| 3799 | 2010-08-25 17:24:17 | 2022-05-31 05:26:04 |
Editor abcdef
| 14198 | 2014-08-31 01:58:06 | 2022-05-31 09:12:32 |
J.P.Lon
| 4263 | 2006-08-02 10:34:43 | 2022-06-01 16:18:52 |
Pyrotec
| 31908 | 2005-07-04 23:43:44 | 2022-06-06 17:03:05 |
Wpollard
| 9616 | 2005-08-04 22:02:17 | 2022-06-09 13:21:10 |
Sportsguy17
| 4613 | 2013-10-11 22:12:08 | 2022-06-10 00:32:43 |
Radiosaltbird
| 7553 | 2010-03-06 20:46:57 | 2022-06-11 10:08:58 |
FuriouslySerene
| 5274 | 2006-07-19 23:57:43 | 2022-06-12 17:06:54 |
LisaLodwick
| 1501 | 2013-10-19 09:59:22 | 2022-06-16 14:15:30 |
Dthomsen8
| 498600 | 2008-01-24 19:36:16 | 2022-06-16 21:07:47 |
Willy turner
| 20172 | 2006-01-27 21:24:50 | 2022-06-19 15:12:53 |
MishaPan
| 10358 | 2006-11-30 03:56:13 | 2022-06-23 05:05:49 |
Pahlevun
| 33054 | 2012-07-28 09:11:01 | 2022-06-23 17:46:08 |
Coolabahapple
| 84534 | 2014-12-17 12:38:53 | 2022-06-24 07:36:17 |
Ciar
| 7306 | 2006-08-17 23:48:11 | 2022-06-24 16:49:11 |
Azealia911
| 14848 | 2015-01-22 22:28:45 | 2022-06-25 12:36:38 |
Markkaempfer
| 2639 | 2012-02-15 07:21:54 | 2022-06-26 05:38:59 |
TSRL
| 65609 | 2007-07-12 15:22:14 | 2022-06-26 20:52:48 |
Nemesis63
| 9687 | 2008-09-14 01:10:41 | 2022-06-27 15:20:19 |
ProcBot II
| 3 | 2021-05-03 11:18:26 | 2023-11-06 10:12:59 |
Menchi
| 30401 | 2002-02-25 15:43:11 | 2024-04-18 09:49:18 |
L236
| 360 | 2014-06-15 16:38:04 | 2024-06-16 16:11:42 |
----
{{Database report/footer|count=23|query_runtime=2.85|last_updated=17:26, 27 June 2025 (UTC)}}
{{database report end}}