Page MenuHomePhabricator

Consistently indicate users' effective groups on group-related interfaces
Open, Needs TriagePublic

Description

MediaWiki has three concepts of user groups (not counting global groups, which aren't a core feature):

  • normal groups stored in the DB,
  • implicit groups, which are assigned dynamically based on behavior hardcoded in MediaWiki core (includes autopromoted groups and a few other things like the temp group for temporary users)
  • effective groups, which are normal groups + implicit groups + the UserEffectiveGroups hook potentially adding or removing some groups.

Effective groups are the "real" one that actually determines the outcome of permission checks; unfortunately they are not consistently shown - some group-related UIs only show normal groups, others normal and implicit groups, yet others effective groups. This of course results in lots of confusion.

We should unify this so that every interface (possibly with the exception of batch queries like Special:ListUsers where it might be infeasible for performance reasons) show effective groups, but also indicate which groups are implicit and which groups have been added / removed via the hook. Where this is not possible, the UI should clearly warn about it.

Relevant interfaces:

  • Special:Preferences > Basic information > Member of groups
  • Special:CentralAuth
  • Special:ListUsers
  • Special:UserRights (shows normal and implicit groups but not effective groups)
  • group lists in various APIs:
    • query+users with usprop=groups|implicitgroups|groupmemberships (groups is effective groups but it's not obvious)
  • group / user right input parameters for various APIs. These usually can't handle non-DB-based groups, and should state it clearly.
    • pcgroup / pcexcludegroup / pcrights / pcexcluderights for query+contributors
    • augroup / auexcludegroup / aurights for query+allusers

See also:
T396061: Groups requiring 2FA via $wgOATHRequiredForGroups do not clearly warn users without 2FA that their permissions were truncated

Event Timeline

Tgr renamed this task from Consistently indicate users' effective groups on (non-batch) group-related interfaces to Consistently indicate users' effective groups on group-related interfaces.Sep 18 2025, 12:12 PM
Tgr updated the task description. (Show Details)

Is Special:Log/rights also a "relevant interface", since it records group membership at the time of the log entry?