Посібник:Права користувачів
Права користувачів — дозволи (як-от здатність редагувати сторінки чи блокувати користувачів), які можуть бути призначені різним групам користувачів. MediaWiki ships with a default set of user rights and user groups, but these can be customized. Ця сторінка пояснює права та групи за замовчуванням, і як їх налаштовувати.
Інформацію про додавання та вилучення окремих користувачів вікі з груп див. у Довідка:Права та групи користувачів і Manual:Setting user groups in MediaWiki .
Зміна дозволів груп
A default MediaWiki installation assigns certain rights to default groups (see below). You can change the default rights by editing the $wgGroupPermissions array in LocalSettings.php with the syntax.
$wgGroupPermissions['group']['right'] = true /* or false */;
$wgGroupPermissions
will be set in includes/DefaultSettings.php
, but it is not present in LocalSettings.php
. You will then need to add it in that file.If a member has multiple groups, they get all 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 'user'
group.
In addition to the default groups, you can arbitrarily create new groups using the same array.
Приклади
This example will disable viewing of all pages not listed in $wgWhitelistRead , then re-enable for registered users only:
$wgGroupPermissions['*']['read'] = false;
# The following line is not actually necessary, since it's in the defaults. Setting '*' to false doesn't disable rights for groups that have the right separately set to true!
$wgGroupPermissions['user']['read'] = true;
This example will disable editing of all pages, then re-enable for users with confirmed email addresses only:
# Disable for everyone.
$wgGroupPermissions['*']['edit'] = false;
# Disable for users, too: by default 'user' is allowed to edit, even if '*' is not.
$wgGroupPermissions['user']['edit'] = false;
# Make it so users with confirmed email addresses are in the group.
$wgAutopromote['emailconfirmed'] = APCOND_EMAILCONFIRMED;
# Hide group from user list.
$wgImplicitGroups[] = 'emailconfirmed';
# Finally, set it to true for the desired group.
$wgGroupPermissions['emailconfirmed']['edit'] = true;
Створення нової групи та призначення їй дозволів
You can create new user groups by defining permissions for the according group name in $wgGroupPermissions[ 'group-name' ]
where group-name is the actual name of the group.
Additionally to assigning permissions, you should create these three wiki pages with fitting content:
- MediaWiki:Group-<group-name> (content:
Name of the group
) - MediaWiki:Group-<group-name>-member (content:
Name of a member of the group
) - MediaWiki:Grouppage-<group-name> (content:
Name of the group page
)
By default, bureaucrats can add users to, or remove them from, any group. However, if you are using Manual:$wgAddGroups and Manual:$wgRemoveGroups , you may need to customize those instead.
Приклади
This example will create an arbitrary "projectmember" group that can block users and delete pages, and whose edits are hidden by default in the recent changes log:
$wgGroupPermissions['projectmember']['bot'] = true;
$wgGroupPermissions['projectmember']['block'] = true;
$wgGroupPermissions['projectmember']['delete'] = true;
'random-group'
or 'random_group'
instead of 'random group'
. Moreover it is recommended to only use lowercase letters to create a group.In this example, you would probably also want to create these pages:
- MediaWiki:Group-projectmember (content:
Project members
) - MediaWiki:Group-projectmember-member (content:
Project member
) - MediaWiki:Grouppage-projectmember (content:
Project:Project Members
)
This will ensure that the group will be referred to as "Project members" throughout the interface, and a member will be referred to as a "Project member", and overviews will link the group name to Project:Project members.
This example disables write access (page editing and creation) by default, creates a group named "writer", and grants it write access. Users can be manually added to this group via Special:UserRights:
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['user']['createpage'] = false;
$wgGroupPermissions['writer']['edit'] = true;
$wgGroupPermissions['writer']['createpage'] = true;
In this example, you would probably also want to create these pages:
- MediaWiki:Group-writer (content:
Writers
) - MediaWiki:Group-writer-member (content:
Writer
) - MediaWiki:Grouppage-writer (content:
Project:Write
)
Вилучення наперед визначених груп
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 $wgGroupPermissions[ '<group-name>' ]. For details, see below.
Приклад
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 require_once
lines that add extensions, such as Extension:AntiSpoof containing code that gives bureaucrats group permissions by default.
unset( $wgGroupPermissions['bureaucrat'] );
unset( $wgRevokePermissions['bureaucrat'] );
unset( $wgAddGroups['bureaucrat'] );
unset( $wgRemoveGroups['bureaucrat'] );
unset( $wgGroupsAddToSelf['bureaucrat'] );
unset( $wgGroupsRemoveFromSelf['bureaucrat'] );
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:
$wgExtensionFunctions[] = function() use ( &$wgGroupPermissions ) {
unset( $wgGroupPermissions['oversight'] );
unset( $wgGroupPermissions['flow-bot'] );
};
Примітка про групу «користувач»
With the above mechanism, you can remove the groups sysop, bureaucrat and bot, which - if used - can be assigned through the usual user permission system.
However, it is currently impossible to remove the user
group.
This group is not assigned through the usual permission system.
Instead, every registered user automatically is a member of that group.
This is hardcoded in MediaWiki and currently cannot be changed easily.
Список дозволів
Наступні права користувачів доступні в останній версії 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.
Право | Опис | Групи користувачів, котрі мають це право за замовчуванням. | Версії |
---|---|---|---|
Читання | |||
read | Перегляд сторінок - when set to false, override for specific pages with $wgWhitelistRead
|
*, user | 1.5+ |
Редагування | |||
applychangetags | Застосування міток разом зі своїми змінами - requires the edit right
|
user | 1.25+ |
autocreateaccount | Автоматичний вхід в систему із зовнішнього облікового запису користувача - a more limited version of createaccount | — | 1.27+ |
createaccount | Створення нових облікових записів - register / registration | *, sysop | 1.5+ |
createpage | Створення сторінок (які не є обговореннями) - requires the edit right
|
*, user | 1.6+ |
createtalk | Створення сторінок обговорень - requires the edit right
|
*, user | 1.6+ |
delete-redirect | Видаляти перенаправлення з одною версією (note that this is not needed if the group already has the delete right)
|
— | 1.36+ |
edit | Редагування сторінок | *, user | 1.5+ |
editsemiprotected | Редагування сторінок з рівнем захисту «Allow only autoconfirmed users» - without cascading protection - requires the edit right | autoconfirmed, bot, sysop | 1.22+ |
editprotected | Редагування сторінок з рівнем захисту «Allow only administrators» - without cascading protection - requires the edit right | sysop | 1.13+ |
minoredit | Позначення редагувань як незначних - requires the edit right
|
user | 1.6+ |
move | Перейменування сторінок - requires the edit right
|
user, sysop | 1.5+ |
move-categorypages | Перейменування сторінок категорій - requires the move right
|
user, sysop | 1.25+ |
move-rootuserpages | Перейменування кореневих сторінок користувачів - requires the move right
|
user, sysop | 1.14+ |
move-subpages | Перейменування сторінок і їх підсторінок - requires the move right
|
user, sysop | 1.13+ |
movefile | Перейменування файлів - requires the move right as well
|
user, sysop | 1.14+ |
reupload | Перезаписування існуючих файлів - requires the upload right
|
user, sysop | 1.6+ |
reupload-own | Перезаписування власноруч завантажених, існуючих файлів - requires the upload right (note that this is not needed if the group already has the reupload right)
|
— | 1.11+ |
reupload-shared | Локальний перезапис файлів із загального сховища медіафайлів - (if one is set up) with local files (requires the upload right)
|
user, sysop | 1.6+ |
sendemail | Надсилання електронної пошти іншим користувачам | user | 1.16+ |
upload | Завантаження файлів - requires the edit right and $wgEnableUploads to be true
|
user, sysop | 1.5+ |
upload_by_url | Завантаження файлів за URL-адресами - requires the upload right (Prior to 1.20 it was given to sysops)
|
— | 1.8+ |
Управління | |||
bigdelete | Вилучення сторінок з великою історією (as determined by $wgDeleteRevisionsLimit) - requires the delete right | sysop | 1.12+ |
block | Блокування чи розблокування іншим користувачам можливості редагування - Block options include preventing editing and registering new accounts, and autoblocking other users on the same IP address | sysop | 1.5+ |
blockemail | Блокування чи розблокування користувачам можливості надсилання електронної пошти - allows preventing use of the Special:Emailuser interface when blocking - requires the block right | sysop | 1.11+ |
browsearchive | Пошук вилучених сторінок - through Special:Undelete - requires the deletedhistory right | sysop | 1.13+ |
changetags | Додавання або вилучення будь-яких міток для певних версій сторінок або записів у журналах - currently unused by extensions | user | 1.25+ |
delete | Вилучення сторінок 1.5–1.11: allows the deletion or undeletion of pages. 1.12+: allows the deletion of pages. For undeletions, there is now the 'undelete' right, see below |
sysop | 1.5+ |
deletedhistory | Перегляд вилучених з історії редагувань без перегляду вилученого тексту | sysop | 1.6+ |
deletedtext | Перегляд вилученого тексту та змін між вилученими версіями | sysop | 1.16+ |
deletelogentry | Вилучення та відновлення окремих записів журналу - allows deleting/undeleting information (action text, summary, user who made the action) of specific log entries - requires the deleterevision right | suppress | 1.20+ |
deleterevision | Вилучення та відновлення окремих версій сторінок - allows deleting/undeleting information (revision text, edit summary, user who made the edit) of specific revisions Split into deleterevision and deletelogentry in 1.20 | suppress | 1.6+ |
editcontentmodel | Редагування моделі вмісту сторінки - requires the edit right | user | 1.23.7+ |
editinterface | Редагування інтерфейсу користувача - contains interface messages. For editing sitewide CSS/JSON/JS, there are now segregate rights, see below. - requires the edit right | sysop, interface-admin | 1.5+ |
editmyoptions | Редагування власних налаштувань | * | 1.22+ |
editmyprivateinfo | Редагування власних приватних даних (напр., адреса електронної пошти, справжнє ім'я) і запит на скидання пароля електронною поштою - also hides the "Change Password", but not other ways to change the password - requires the viewmyprivateinfo right
|
* | 1.22+ |
editmyusercss | Редагування власних CSS-файлів користувача - prior to 1.31 it was assigned to everyone (i.e. "*") (note that this is not needed if the group already has the editusercss right) - requires the edit right | user | 1.22+ |
editmyuserjs | Редагування власних JavaScript-файлів користувача - prior to 1.31 it was assigned to everyone (i.e. "*") (note that this is not needed if the group already has the edituserjs right) - requires the edit right | user | 1.22+ |
editmyuserjsredirect | Редагування власних користувацьких файлів JavaScript, які є перенаправленнями (note that this is not needed if the group already has the edituserjs right) - requires the edit right | — | 1.34+ |
editmyuserjson | Редагування власних JSON-файлів користувача (note that this is not needed if the group already has the edituserjson right) - requires the edit right | user | 1.31+ |
editmywatchlist | Редагування власного списку спостереження (зверніть увагу, що деякі дії будуть додавати сторінки навіть без такого права) - requires the viewmywatchlist right
|
* | 1.22+ |
editsitecss | Редагування загального CSS - requires the editinterface right | interface-admin | 1.32+ |
editsitejs | Редагування загального JavaScript - requires the editinterface right | interface-admin | 1.32+ |
editsitejson | Редагування загального JSON - requires the editinterface right | sysop, interface-admin | 1.32+ |
editusercss | Редагування CSS-файлів інших користувачів - requires the edit right | interface-admin | 1.16+ |
edituserjs | Редагування JavaScript-файлів інших користувачів - requires the edit right | interface-admin | 1.16+ |
edituserjson | Редагування JSON-файлів інших користувачів - requires the edit right | sysop, interface-admin | 1.31+ |
hideuser | Блокування чи розблокування імені користувача і приховування чи показування його - Only users with 1000 edits or less can be suppressed by default - requires the block right
Use |
suppress | 1.10+ |
markbotedits | Позначення відкинутих редагувань як редагування бота - see Посібник:Відкіт - requires the rollback right | sysop | 1.12+ |
mergehistory | Об'єднання історій редагувань сторінок - requires the edit right | sysop | 1.12+ |
pagelang | Зміна мови сторінки - $wgPageLanguageUseDB must be true | — | 1.24+ |
patrol | Позначення чужих редагувань патрульованими - $wgUseRCPatrol must be true | sysop | 1.5+ |
patrolmarks | Перегляд позначок патрулювання в нових редагуваннях | — | 1.16+ |
protect | Зміна налаштувань захисту та редагування сторінок із каскадним захистом - requires the edit right | sysop | 1.5+ |
rollback | Швидкий відкіт редагувань останнього користувача, який редагував сторінку - requires the edit right | sysop | 1.5+ |
suppressionlog | Перегляд приватних журналів | suppress | 1.6+ |
suppressrevision | Перегляд, приховування та відновлення конкретних змін сторінок від будь-якого користувача - Prior to 1.13 this right was named hiderevision - requires the deleterevision right | suppress | 1.6+ |
unblockself | Розблоковування себе - Without it, an administrator that has the capability to block cannot unblock themselves if blocked by another administrator | sysop | 1.17+ |
undelete | Відновлення сторінок - requires the deletedhistory right | sysop | 1.12+ |
userrights | Зміна всіх прав користувачів - allows the assignment or removal of all(*) groups to any user. (*)With $wgAddGroups and $wgRemoveGroups you can set the possibility to add/remove certain groups instead of all |
bureaucrat | 1.5+ |
userrights-interwiki | Зміна прав користувачів у інших вікі - requires the userrights right | — | 1.12+ |
viewmyprivateinfo | Перегляд власних приватних даних (напр., адреса електронної пошти, справжнє ім'я) | * | 1.22+ |
viewmywatchlist | Перегляд власного списку спостереження | * | 1.22+ |
viewsuppressed | Перегляд змін, прихованих від усіх користувачів - i.e. a more narrow alternative to "suppressrevision" (note that this is not needed if the group already has the suppressrevision right) | suppress | 1.24+ |
Адміністрація | |||
autopatrol | Автоматичне позначення власних редагувань патрульованими - $wgUseRCPatrol must be true | bot, sysop | 1.9+ |
deletechangetags | Вилучення міток з бази даних - currently unused by extensions | sysop | 1.28+ |
import | Імпорт сторінок з інших вікі - "transwiki" - requires the edit right | sysop | 1.5+ |
importupload | Імпорт сторінок через завантаження файлів - This right was called 'importraw' in and before version 1.5 - requires the edit right | sysop | 1.5+ |
managechangetags | Створення та (де)активування міток - currently unused by extensions | sysop | 1.25+ |
siteadmin | Закриття і відкриття бази даних - which blocks all interactions with the web site except viewing. (not available by default) | — | 1.5+ |
unwatchedpages | Перегляд списку сторінок, за якими ніхто не спостерігає - lists pages that no user has watchlisted | sysop | 1.6+ |
Технічні | |||
apihighlimits | Використання вищих лімітів в API-запитах | bot, sysop | 1.12+ |
autoconfirmed | Без обмежень швидкості за IP - used for the 'autoconfirmed' group, see the other table below for more information (note that this is not needed if the group already has the noratelimit right) | autoconfirmed, bot, sysop | 1.6+ |
bot | Автоматична обробка - can optionally be viewed | bot | 1.5+ |
ipblock-exempt | Уникнення блокувань за IP-адресою, автоблокувань і блокувань діапазонів | sysop | 1.9+ |
nominornewtalk | Незначні редагування на сторінках обговорень користувачів не викликають сповіщень про нові повідомлення - requires the minoredit right | bot | 1.9+ |
noratelimit | Без обмежень за швидкістю - not affected by rate limits (prior to the introduction of this right, the configuration variable $wgRateLimitsExcludedGroups was used for this purpose) | sysop, bureaucrat | 1.13+ |
override-export-depth | Експорт сторінок, включаючи пов'язані сторінки з глибиною до 5 With this right, you can define the depth of linked pages at Special:Export. Otherwise, the value of $wgExportMaxLinkDepth , which is 0 by default, will be used. |
— | 1.15+ |
suppressredirect | Нестворення перенаправлення зі старої назви на нову при перейменуванні сторінки - requires the move right | bot, sysop | 1.12+ |
Список груп
Наступні групи користувача доступні в останній версії MediaWiki. If you are using an older version then some of these may not be implemented.
Група | Опис | Права за замовчуванням. | Версії |
---|---|---|---|
* | Всі користувачі (Включаючи анонімних користувачів) | createaccount, createpage, createtalk, edit, editmyoptions, editmyprivateinfo, editmywatchlist, read, viewmyprivateinfo, viewmywatchlist | 1.5+ |
temp | Temporary user accounts (T330816) | Similar to * group | 1.41+ |
user | Зареєстровані користувачі. Does not include temporary accounts. | applychangetags, changetags, createpage, createtalk, edit, editcontentmodel, editmyusercss, editmyuserjs, editmyuserjson, minoredit, move, move-categorypages, move-rootuserpages, move-subpages, movefile, purge, read, reupload, reupload-shared, sendemail, upload | 1.13+ |
autoconfirmed | Registered accounts at least as old as $wgAutoConfirmAge and having at least as many edits as $wgAutoConfirmCount . | autoconfirmed, editsemiprotected | 1.6+ |
bot | Accounts with the bot right (intended for automated scripts). | autoconfirmed, autopatrol, apihighlimits, bot, editsemiprotected, nominornewtalk, suppressredirect | 1.5+ |
sysop | Users who by default can delete and restore pages, block and unblock users, etc. | apihighlimits, autoconfirmed, autopatrol, bigdelete, block, blockemail, browsearchive, createaccount, delete, deletedhistory, deletedtext, editinterface, editprotected, editsemiprotected, editsitejson, edituserjson, import, importupload, ipblock-exempt, managechangetags, markbotedits, mergehistory, move, move-categorypages, move-rootuserpages, move-subpages, movefile, noratelimit, patrol, protect, reupload, reupload-shared, rollback, suppressredirect, unblockself, undelete, unwatchedpages, upload | 1.5+ |
interface-admin | Users who can edit sitewide CSS/JS. | editinterface, editsitecss, editsitejs, editsitejson, editusercss, edituserjs, edituserjson | 1.32+ |
bureaucrat | Users who can change the rights of other users by default and therefore have full access of the entire wiki. | noratelimit, userrights | 1.5+ |
suppress | deletelogentry, deleterevision, hideuser, suppressionlog, suppressrevision, viewsuppressed | 1.13+ |
From MW 1.12, you can create your own groups into which users are automatically promoted (as with autoconfirmed and emailconfirmed) using $wgAutopromote . You can even create any custom group by just assigning rights to them.
Права за замовчуванням
The default rights are defined in MainConfigSchema.php .
- Default values in HEAD version:
https://phabricator.wikimedia.org/diffusion/MW/browse/master/includes/MainConfigSchema.php
- The default values in the latest stable MediaWiki release, version 1.42, are available here:
https://phabricator.wikimedia.org/diffusion/MW/browse/REL1_42/includes/MainConfigSchema.php
- Additional rights: you should be able to list all the permissions available on your wiki by running
PermissionManager::getAllRights()
.
Додавання нових прав
Information for coders only follows.
If you're adding a new right in core, for instance to control a new special page, you are required to add it to the list of available rights in PermissionManager.php , $coreRights
(example).
If you're doing so in an extension , you instead need to use $wgAvailableRights .
You probably also want to assign it to some user group by editing $wgGroupPermissions 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 $wgGrantPermissions .
// create projectmember-powers right
$wgAvailableRights[] = 'projectmember-powers';
// add projectmember-powers to the projectmember-group
$wgGroupPermissions['projectmember']['projectmember-powers'] = true;
// add projectmember-powers to the 'basic' grant so we can use our projectmember powers over an API request
$wgGrantPermissions['basic']['projectmember-powers'] = true;
You also need to add right-[name]
and action-[name]
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 ...".
Див. також
- Special:ListGroupRights – Links to this help page and might contain not yet documented rights
- Довідка:Права та групи користувачів – Help page describing use of the Special:Userrights interface (for bureaucrats)
- Manual:Setting user groups in MediaWiki – Information about managing and the assignment of user groups.
- Manual:$wgNamespaceProtection
- Manual:$wgAutopromote
- Manual:$wgAddGroups , Manual:$wgRemoveGroups
- Посібник:Запобігання доступу – приклади
- Manual:Establishing a hierarchy of bureaucrats
- Category:User rights extensions – Many extensions relating to user rights