Default User Groups
* (Everyone)
Applies to all requests, including unauthenticated visitors. By default grants
read, createaccount, and edit (the last of which can be revoked to make a read-only wiki).user
All registered (logged-in) accounts. Grants rights like
move, upload, minoredit, editmywatchlist, and sendemail.autoconfirmed
Accounts that meet the auto-confirmation thresholds (
$wgAutoConfirmAge and $wgAutoConfirmCount). Gets autoconfirmed and editsemiprotected.sysop
Administrators. Can delete pages, protect pages, block users, view deleted revisions, import pages, and manage the wiki configuration via the UI.
bureaucrat
Can promote and demote users to/from the
sysop and bot groups via Special:UserRights.bot
Automated accounts. Edits are flagged as bot edits and hidden from recent changes by default. Grants
bot, autopatrol, nominornewtalk, and noratelimit.interface-admin
Can edit MediaWiki interface pages (
MediaWiki: namespace) including site-wide CSS and JavaScript. Separate from sysop since MediaWiki 1.32.suppress
Can suppress (oversight) revisions so they are hidden from sysops as well as normal users. Often restricted to trusted users only.
$wgGroupPermissions
All group→right mappings are defined in$wgGroupPermissions. The array key is the group name, the nested key is the right name, and the value is a boolean.
To revoke a right that was granted to an earlier group in the hierarchy, use
$wgRevokePermissions rather than setting the right to false — the latter only affects that specific group.Available Rights
The following core rights are defined inPermissionManager::CORE_RIGHTS:
Content Rights
read · edit · createpage · createtalk · move · movefile · upload · reupload · delete · undelete · import · importuploadAdministrative Rights
block · blockemail · protect · editprotected · rollback · patrol · autopatrol · userrights · siteadmin · interwikiInterface Rights
editinterface · editsitecss · editsitejs · editsitejson · editusercss · edituserjs · edituserjsonUser Rights
createaccount · autocreateaccount · sendemail · viewmyprivateinfo · editmyprivateinfo · editmyoptions · editmywatchlist · viewmywatchlistContent Visibility
deletedhistory · deletedtext · suppressrevision · viewsuppressed · suppressionlog · hideuser · browsearchivePerformance Rights
apihighlimits · noratelimit · bot · markbotedits · autoconfirmed · nominornewtalk · bigdeleteNamespace-Level Permissions
$wgNamespaceProtection locks specific namespaces so that only users with a given right can edit them:
Page Protection Levels
Individual pages can be protected via the UI (Special:Protect) or API. Protection levels are defined in$wgRestrictionLevels:
Block System
The block system prevents specific users, IP addresses, or CIDR ranges from editing (and optionally reading, creating accounts, or sending email).Block Types
| Block Type | Example | Description |
|---|---|---|
| User block | BlockUser | Blocks a specific registered account |
| IP block | 192.168.1.1 | Blocks a single IP address |
| Range block | 192.168.1.0/24 | Blocks a CIDR range of IP addresses |
| Autoblock | (automatic) | Automatically blocks IPs used by a blocked user |
| Global block | (via CentralAuth) | Blocks across all wikis in a farm |
Block Configuration
Purging Expired Blocks
Checking Permissions in Code
UsePermissionManager (available via MediaWikiServices) to check whether a user can perform an action. Do not check $wgGroupPermissions directly.
Rigor Levels
PermissionManager supports three rigor levels for permission checks:
| Rigor | Constant | Description |
|---|---|---|
| Quick | RIGOR_QUICK | Cheap checks using replica DB; suitable for UI rendering |
| Full | RIGOR_FULL | Full checks possibly from replica DB |
| Secure | RIGOR_SECURE | Full checks using the primary DB; use for actual write operations |
Auto-confirmation
Auto-confirmation automatically promotes users to theautoconfirmed group after meeting age and edit count thresholds:
