Manual:User rights

User rights are specific access and ability permissions that can be assigned to customizable user groups.

Groups can then be assigned to (or removed from) users through the Special:Userrights help>Special:MyLanguage/Help:Special pages|special page.

See .

Access to this interface is itself governed by the 'userrights' right, so only users in the 'bureaucrat' group can do it (in a default set-up).

See  for information about managing and the assignment of user groups.

This Special:UserRights interface was introduced in MediaWiki 1.5; see  for earlier methods.

Changing group permissions
A default MediaWiki installation assigns certain rights to default groups (see below).

You can change the default rights by editing the  array in  with the syntax.

In a default installation $wgGroupPermissions will be set in  , but it is not present in.

You will then need to add it in that file.

If a member has multiple groups, they get all of the permissions from each of the groups they are in.

All users, including anonymous users, are in the  group; all registered users are in the   group.

In addition to the default groups, you can arbitrarily create new groups using the same array.

Examples
This example will disable viewing of all pages not listed in , then re-enable for registered users only:

This example will disable editing of all pages, then re-enable for users with confirmed email addresses only:

Creating a new group and assigning permissions to it
You can create new user groups by defining permissions for the according group name in  where  is the actual name of the group.

Additionally to assigning permissions, you should create these three wiki pages with fitting content:


 * (content: )
 * (content: )
 * (content: )

By default, bureaucrats can add users to, or remove them from, any group.

However, if you are using <tvar|AddGroups></> and <tvar|RemoveGroups></>, you may need to customize those instead.

Examples
This example will create an arbitrary "ninja" group that can block users and delete pages, and whose edits are hidden by default in the recent changes log:


 * Note: the group name cannot contain spaces, so use  or   instead of

In this example, you would probably also want to create these pages:


 * (content: )
 * (content: )
 * (content: )

This will ensure that the group will be referred to as "Ninjas" throughout the interface, and a member will be referred to as a "ninja", and overviews will link the group name to.

This example disables write access (page editing and creation) by default, creates a group named "Write", and grants it write access. Users can be manually added to this group via Special:UserRights:

In this example, you would probably also want to create these pages:


 * (content: )
 * (content: )
 * (content: )

Removing predefined groups
MediaWiki out of the box comes with a number of predefined groups.

Most of these groups can be removed by unsetting the according array keys, among them.

For details see below.

Example
This example will eliminate the bureaucrat group entirely.

It is necessary to ensure that all six of these variables are unset for any group that one wishes to remove from being listed at Special:ListGroupRights; however, merely unsetting $wgGroupPermissions will suffice to remove it from Special:UserRights.

This code should be placed after any  lines that add extensions such as <tvar|RenameUser></> containing code that gives bureaucrats group permissions by default.

In some extensions (Flow, Semantic MediaWiki, etc.), rights are added during extension registration or in a registration function. In this case, it could be necessary to use a registration function in LocalSettings.php to remove some predefined user groups:

Note on the group called "user"
With the above mechanism, you can remove the groups sysop, bureaucrat and bot, which - if used - can be assigned through the usual help>Special:MyLanguage/Help:User rights and groups</>|user permission system.

However, it is currently impossible to remove the <tt>user</tt> group.

This group is not assigned through the usual permission system.

Instead, every logged in user automatically is member of that group.

This is hardcoded in MediaWiki and currently cannot be changed easily.

List of permissions
The following user rights are available in the latest version of MediaWiki.

If you are using an older version, look at "Special:Version" on your wiki and see if your version is covered in the "versions" column.

List of groups
The following groups are available in the latest version of MediaWiki.

If you are using an older version then some of these may not be implemented.

From MW 1.12, you can create your own groups into which users are automatically promoted (as with autoconfirmed and emailconfirmed) using <tvar|AutoPromote></>.

You can even create any custom group by just assigning rights to them.

Default rights
The default rights are defined in <tvar|DefaultSettings></>.


 * Default values in HEAD version: https://phabricator.wikimedia.org/diffusion/MW/browse/master/includes/DefaultSettings.php


 * The default values in the latest stable MediaWiki release, version, are available here: https://phabricator.wikimedia.org/diffusion/MW/browse//includes/DefaultSettings.php


 * Additional rights: you should be able to list all the permissions available on your wiki by running <tvar|getAllRights> </>.

Adding new rights
'' Information for coders only follows. ''

If you're adding a new right in core, for instance to man>Special:MyLanguage/Manual:Special pages</>|control a new special page, you are required to add it to the list of available rights in <tvar|User></>,  ([<tvar|url>https://gerrit.wikimedia.org/r/#/c/135312/73/includes/User.php</> example]).

If you're doing so in an extension, you instead need to use <tvar|AvailableRights></>.

You probably also want to also assign it to some user group by editing <tvar|GroupPermissions></> described above.

If you want this right to be accessible to external applications by OAuth or by bot passwords, then you will need to add it to a grant by editing

You also need to add  and   interface messages to /languages/i18n/en.json (with documentation in qqq.json).

The right-* messages can be seen on Special:ListGroupRights and the action-* messages are used in a sentence like "You do not have permission to ...".