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

| Event coordinator

Diako1971

| 3799

| 2010-08-25 17:24:17

| 2022-05-31 05:26:04

| Autopatrolled

Editor abcdef

| 14198

| 2014-08-31 01:58:06

| 2022-05-31 09:12:32

| Autopatrolled

J.P.Lon

| 4263

| 2006-08-02 10:34:43

| 2022-06-01 16:18:52

| Autopatrolled

Pyrotec

| 31908

| 2005-07-04 23:43:44

| 2022-06-06 17:03:05

| Autopatrolled

Wpollard

| 9616

| 2005-08-04 22:02:17

| 2022-06-09 13:21:10

| Autopatrolled

Sportsguy17

| 4613

| 2013-10-11 22:12:08

| 2022-06-10 00:32:43

| Autopatrolled

Radiosaltbird

| 7553

| 2010-03-06 20:46:57

| 2022-06-11 10:08:58

| Autopatrolled

FuriouslySerene

| 5274

| 2006-07-19 23:57:43

| 2022-06-12 17:06:54

| Autopatrolled

LisaLodwick

| 1501

| 2013-10-19 09:59:22

| 2022-06-16 14:15:30

| Autopatrolled

Dthomsen8

| 498600

| 2008-01-24 19:36:16

| 2022-06-16 21:07:47

| Autopatrolled

Willy turner

| 20172

| 2006-01-27 21:24:50

| 2022-06-19 15:12:53

| Autopatrolled

MishaPan

| 10358

| 2006-11-30 03:56:13

| 2022-06-23 05:05:49

| Autopatrolled

Pahlevun

| 33054

| 2012-07-28 09:11:01

| 2022-06-23 17:46:08

| Autopatrolled

Coolabahapple

| 84534

| 2014-12-17 12:38:53

| 2022-06-24 07:36:17

| Autopatrolled

Ciar

| 7306

| 2006-08-17 23:48:11

| 2022-06-24 16:49:11

| Autopatrolled

Azealia911

| 14848

| 2015-01-22 22:28:45

| 2022-06-25 12:36:38

| Autopatrolled

Markkaempfer

| 2639

| 2012-02-15 07:21:54

| 2022-06-26 05:38:59

| Autopatrolled

TSRL

| 65609

| 2007-07-12 15:22:14

| 2022-06-26 20:52:48

| Autopatrolled

Nemesis63

| 9687

| 2008-09-14 01:10:41

| 2022-06-27 15:20:19

| Autopatrolled

ProcBot II

| 3

| 2021-05-03 11:18:26

| 2023-11-06 10:12:59

| Edit filter manager

Menchi

| 30401

| 2002-02-25 15:43:11

| 2024-04-18 09:49:18

| Administrator

L236

| 360

| 2014-06-15 16:38:04

| 2024-06-16 16:11:42

| Event coordinator, Page mover, Template editor

----

{{Database report/footer|count=23|query_runtime=2.85|last_updated=17:26, 27 June 2025 (UTC)}}

{{database report end}}