Руководство:Права пользователя
Права пользователя - это разрешения (например, возможность редактирования страницы или блокировки пользователей), которые могут быть назначены настраиваемым группам пользователей. MediaWiki поставляется с набором прав пользователя и групп пользователей по умолчанию, но их можно настроить. На этой странице объясняется работа с правами и группами по умолчанию, а также способы их настройки.
Дополнительные сведения о том, как добавлять и удалять пользователей wiki из групп, смотрите в разделах Справка:Права и группы участников и Руководство:Настройка прав участников в MediaWiki.
Изменение прав групп
После установки MediaWiki по умолчанию назначает определённые стандартные права на группы (см. таблицу в разделе #Список прав).
Вы можете изменить права по умолчанию, отредактировав данные $wgGroupPermissions в LocalSettings.php применяя определенный синтаксис.
$wgGroupPermissions['group']['right'] = true /* или false */;
$wgGroupPermissions, но это не присутствует в includes/DefaultSettings.php. Затем вам нужно будет добавить его в этот файл.Если пользователь состоит в нескольких группах, то он получает все права от каждой из групп, в которых он находятся.
Все пользователи, включая анонимных, находятся в группе *; а все зарегистрированные пользователи находятся в группе user.
В дополнение к группам имеющимся по умолчанию, вы также можете произвольно создавать новые группы с использованием тех же строк.
Примеры
В данном примере можно отключить просмотр всех страниц, не перечисленных в $wgWhitelistRead, а затем повторно включить только для зарегистрированных пользователей:
$wgGroupPermissions['*']['read'] = false;
# Следующая строка не актуальна (не работает), поскольку она находится в значениях по умолчанию. Установка значения '*' (для всех) на false не отключает права для групп, у которых есть одно из прав, отдельно устанавливаемое на true!
$wgGroupPermissions['user']['read'] = true;
В данном примере отключается редактирование всех страниц, а затем снова включается только для пользователей с подтвержденными адресами электронной почты:
# Отключить для всех.
$wgGroupPermissions['*']['edit'] = false;
# Отключить для пользователей тоже: По умолчанию группе 'user' разрешено редактировать, даже если группе '*' - нет.
$wgGroupPermissions['user']['edit'] = false;
# Делает так, чтобы пользователи с подтвержденными адресами электронной почты находились данной группе.
$wgAutopromote['emailconfirmed'] = APCOND_EMAILCONFIRMED;
# Скрывает группу в списке пользователей.
$wgImplicitGroups[] = 'emailconfirmed';
# Наконец, устанавливает для него значение true для нужной группы.
$wgGroupPermissions['emailconfirmed']['edit'] = true;
Создание новой группы и назначение ей прав.
A custom group can be created by simply assigning rights to it via $wgGroupPermissions[ 'group-name' ] where group-name is the actual name of the group.
Из MW 1.12 вы можете создавать свои собственные группы, в которых пользователи автоматически повышаются (например, с помощью autoconfirmed и emailconfirmed), используя $wgAutopromote.
Кроме того, чтобы назначать разрешения, вы должны создать эти три страницы вики с подходящим контентом:
- MediaWiki:Group-<group-name> (контент:
Название группы) - MediaWiki:Group-<group-name>-member (контент:
Имя пользователя группы) - MediaWiki:Grouppage-<group-name> (контент:
Имя страницы группы)
По умолчанию бюрократы могут добавлять пользователей или удалять их из любой группы.
Однако, если вы используете $wgAddGroups и $wgRemoveGroups, вам может потребоваться настроить их.
Примеры
В данном примере будет создана произвольная группа «projectmember», которая может блокировать пользователей и удалять страницы, а их изменения скрыты по умолчанию в журнале последних изменений:
$wgGroupPermissions['projectmember']['bot'] = true;
$wgGroupPermissions['projectmember']['block'] = true;
$wgGroupPermissions['projectmember']['delete'] = true;
'random-group' или 'random_group' вместо 'random group'. Кроме того, для создания группы рекомендуется использовать только строчные буквы.В этом примере вы, возможно, захотите создать эти страницы:
- MediaWiki:Group-projectmember (content:
Project members) - MediaWiki:Group-projectmember-member (content:
Project member) - MediaWiki:Grouppage-projectmember (content:
Project:Project Members)
Это гарантирует, что группа будет называться «Участники проекта» по всему интерфейсу, а член будет называться «Участники проекта», а в обзорах будет указана ссылка на имя группы Project:Участники проекта.
В данном примере по умолчанию отключается доступ на запись (редактирование и создание страницы), создается группа с именем «Write» которой и предоставляется возможность записи. Пользователи могут быть добавлены вручную в эту группу (Write) через $UserRights: 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. Если вы используете более старую версию, посмотрите на странице «Special:Version» в своей вики включена ли ваша версия в столбце «версии» (versions).
| Права | Описание | Группы пользователей, которые имеют это право по умолчанию. | Версии. |
|---|---|---|---|
| Чтение | |||
| read | Просмотр страниц – когда установлено значение false, переопределяется для определенных страниц с помощью $wgWhitelistRead
Setting the user right
'read' to false only restricts access to wiki pages (such as articles and talk pages). Uploaded files (including images, files, docs) under the $wgUploadPath subdirectories will always remain publicly accessible via direct URL access by default.To restrict access to uploaded files, refer to the instructions in Manual:Image authorization and img_auth.php. |
*, 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+ |
| createpreviouslyrenamedaccount | Создавать учётные записи с именами пользователей, ранее использовавшимися переименованными учётными записями – requires the createaccount right
|
sysop | 1.47+ |
| createtalk | Создание страниц обсуждений – requires the edit right
|
*, user | 1.6+ |
| createwithcontentmodel | Создание страниц с моделями содержимого, отличными от модели содержимого по умолчанию – requires the createpage right
|
user | 1.46+ |
| delete-redirect | Удаление перенаправлений с одной версией (note that this is not needed if the group already has the delete right)
|
— | 1.36+ |
| edit | Правка страниц – requires the read right
|
*, user | 1.5+ |
| editsemiprotected | Правка страниц, защищённых как «semi protected» – without cascading protection – requires the edit right
|
autoconfirmed, bot, sysop | 1.22+ |
| editprotected | Правка страниц, защищённых как «fully protected» – 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 | Переименование страниц категорий – требует права move
|
user, sysop | 1.25+ |
| move-rootuserpages | Переименование корневых страниц участников – требует права move
|
user, sysop | 1.14+ |
| move-subpages | Переименование страниц с их подстраницами – требует права move
|
user, sysop | 1.13+ |
| movefile | Переименование файлов – требует права move и $AllowImageMoving
|
user, sysop | 1.14+ |
| reupload | Перезапись существующих файлов – требует права upload
|
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 (требует права upload)
|
user, sysop | 1.6+ |
| sendemail | Отправка электронной почты другим участникам | user | 1.16+ |
| upload | Загрузка файлов – требует права edit и $EnableUploads
|
user, sysop | 1.5+ |
| upload_by_url | Загрузка файлов с адреса URL – требует права upload (Prior to 1.20 it was given to sysops)
|
— | 1.8+ |
| Управление. | |||
| autopatrol | Modifies certain actions performed by the permission holder, automatically marking them as "patrolled" – Depends on $wgUseRCPatrol, $wgUseNPPatrol, $wgUseFilePatrol
|
bot, sysop | 1.9+ |
| bigdelete | Удаление страниц с длинными историями изменений (as determined by $wgDeleteRevisionsLimit) – требует права delete
|
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 – требует права deletedhistory
|
sysop | 1.13+ |
| changetags | Добавление и удаление произвольных меток на отдельных правках и записях в журнале – currently unused by extensions | user | 1.25+ |
| delete | Удаление страниц 1.5-1.11allows 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 | Просмотр удалённого текста и изменений между удалёнными версиями страниц – requires the deletedhistory right
|
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 | Редактирование модели содержимого страницы – требует права edit
|
user | 1.23.7+ |
| editinterface | Правка пользовательского интерфейса – содержит сообщения интерфейса. For editing sitewide CSS/JSON/JS, there are now segregate rights, see below. – требует права edit
|
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) – требует права edit
|
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) – требует права edit
|
user | 1.22+ |
| editmyuserjsredirect | Редактирование собственных JavaScript-файлов, которые являются перенаправлениями (note that this is not needed if the group already has the edituserjs right) – требует права edit
|
— | 1.34+ |
| editmyuserjson | Редактирование своих пользовательских JSON-файлов (note that this is not needed if the group already has the edituserjson right) – требует права edit
|
user | 1.31+ |
| editmywatchlist | Редактирование своего списка наблюдения (обратите внимание, что некоторые действия будут добавлять страницы даже без этого права) – requires the viewmywatchlist right
|
user | 1.22+ |
| editsitecss | Редактирование общесайтовых CSS-файлов – требует права editinterface
|
interface-admin | 1.32+ |
| editsitejs | Редактирование общесайтовых JavaScript-файлов – требует права editinterface
|
interface-admin | 1.32+ |
| editsitejson | Редактирование общесайтовых JSON-файлов – требует права editinterface
|
sysop, interface-admin | 1.32+ |
| editusercss | Правка CSS-файлов других участников – требует права edit
|
interface-admin | 1.16+ |
| edituserjs | Правка JavaScript-файлов других участников – требует права edit
|
interface-admin | 1.16+ |
| edituserjson | Правка JSON-файлов других участников – требует права edit
|
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+ |
| ignore-restricted-groups | Обход условий при изменении групп участников с ограничениями – Only applies to groups the user would be otherwise able to change, based on userrights right and the contents of $wgAddGroups.
|
— | 1.46+ |
| markbotedits | Отметка откатываемых правок как правок бота – см. Manual:Rollback – requires the rollback right
|
sysop | 1.12+ |
| mergehistory | Объединение историй страниц – requires the edit right
|
sysop | 1.12+ |
| pagelang | Изменение языка страницы – $wgPageLanguageUseDB must be true
|
— | 1.24+ |
| patrol | Mark certain actions as "patrolled" – depends on $wgUseRCPatrol, $wgUseNPPatrol, $wgUseFilePatrol
|
sysop | 1.5+ |
| patrolmarks | Просмотр отметок о патрулировании в свежих правках (note that this is not needed if the group already has the patrol right)
|
— | 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 |
bureaucrat | 1.5+ |
| userrights-interwiki | Изменение прав участников на других википроектах – requires the userrights right
|
— | 1.12+ |
| viewmyprivateinfo | Просмотр собственных личных данных (например, адрес электронной почты, настоящее имя) | * | 1.22+ |
| viewmywatchlist | Просмотр своего списка наблюдения | user | 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+ |
| Администрирование. | |||
| 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+ |
| renameuser | Переименование участников (formerly was part of the Renameuser extension) | bureaucrat | 1.40+ |
| 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 | Автоматический процесс – edits and logged actions are hidden from recent changes, 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. Если вы используете более старую версию, некоторые из них могут быть не реализованы.
| Группа | Описание | Права по умолчанию. | Версии. |
|---|---|---|---|
| * | Все пользователи (включая анонимных пользователей) | createaccount, createpage, createtalk, edit, editmyoptions, editmyprivateinfo, read, viewmyprivateinfo | 1.5+ |
| temp | Temporary user accounts (T330816) | Similar to * group
|
1.41+ |
| user | Зарегистрированные пользователи (аккаунты). Does not include temporary accounts. | applychangetags, changetags, createpage, createtalk, createwithcontentmodel, edit, editcontentmodel, editmyusercss, editmyuserjs, editmyuserjson, editmywatchlist, minoredit, move, move-categorypages, move-rootuserpages, move-subpages, movefile, purge, read, reupload, reupload-shared, sendemail, upload, viewmywatchlist | 1.13+ |
| autoconfirmed | зарегистрированные пользователи как минимум $wgAutoConfirmAge и имеющие как минимум столько же изменений, сколько $wgAutoConfirmCount.
|
autoconfirmed, editsemiprotected | 1.6+ |
| bot | Аккаунты с правами bot (используется автоматизированными скриптами). | autoconfirmed, autopatrol, apihighlimits, bot, editsemiprotected, nominornewtalk, suppressredirect | 1.5+ |
| sysop | пользователи, которые по умолчанию могут удалять и восстанавливать страницы, блокировать и разблокировать пользователей и т.д. | apihighlimits, autoconfirmed, autopatrol, bigdelete, block, blockemail, browsearchive, createaccount, createpreviouslyrenamedaccount, 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 | Редактировать страницы, заканчивающиеся на js и css. | editinterface, editsitecss, editsitejs, editsitejson, editusercss, edituserjs, edituserjson | 1.32+ |
| bureaucrat | пользователи которые по умолчанию могут изменять права других пользователей. | noratelimit, renameuser, userrights | 1.5+ |
| suppress | deletelogentry, deleterevision, hideuser, suppressionlog, suppressrevision, viewsuppressed | 1.13+ |
Удаление определенных групп.
MediaWiki из коробки поставляется с несколькими привилегированными группами.
Большинство этих групп можно удалить, отключив соответствующие ключи массива: $wgGroupPermissions['<Имя-группы>'].
Подробнее смотрите далее.
Пример
Этот пример полностью удалит группу бюрократы. Необходимо убедиться, что все шесть из этих переменных не настроены для любой группы, которую вы хотите удалить из списка Special:ListGroupRights; однако достаточно просто удалить $wgGroupPermissions, чтобы удалить его из Special:UserRights.
unset( $wgGroupPermissions['bureaucrat'] );
unset( $wgRevokePermissions['bureaucrat'] );
unset( $wgAddGroups['bureaucrat'] );
unset( $wgRemoveGroups['bureaucrat'] );
unset( $wgGroupsAddToSelf['bureaucrat'] );
unset( $wgGroupsRemoveFromSelf['bureaucrat'] );
This code will not work if any extension that modifies the default rights for the bureaucrat group, such as Расширение:AntiSpoof, is installed.
More broadly, to disable a user group created by an extension, the above code needs to run after all extensions have been registered.
This used to be possible by registering an extension function in LocalSettings.php:
$wgExtensionFunctions[] = function() use ( &$wgGroupPermissions ) {
unset( $wgGroupPermissions['oversight'] );
unset( $wgGroupPermissions['flow-bot'] );
};
However, this no longer works reliably due to T275334.
user
С помощью данного механизма вы можете удалить группы sysop, bureaucrat и bot, которые - если используются - могут быть назначены с помощью обычной user permission system.
Однако в настоящее время невозможно удалить группу user.
Эта группа не назначается через обычную систему разрешений.
Вместо этого каждый зарегистрированный пользователь автоматически входит в эту группу.
Права по умолчанию.
Права по умолчанию определяются в MainConfigSchema.php.
- * Значения по умолчанию в версии HEAD:
- * Значения по умолчанию в последней стабильной версии MediaWiki версии REL1_46 доступны здесь:
- Дополнительные права: Вы должны иметь возможность перечислять все разрешения, доступные в вашей вики, запустив
PermissionManager::getAllRights().
Добавление новых прав.
Информация для кодеров.
Если вы добавляете новое право в ядро, например, управлять новой специальной страницей, вы делаете required (запрос), чтобы добавить его в список доступных прав PermissionManager.php, CORE_RIGHTS (example).
Если вы Template:$man, то вам лучше использовать $AvailableRights.
Вероятно, вы сможете присвоить это некоторой группе пользователей, отредактировав $wgGroupPermissions, описанную выше.
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;
Вам также нужно добавить right-[name] и action-[name] интерфейс сообщений в /languages/i18n/en.json (с документацией в qqq.json).
Правые сообщения можно увидеть в Special:ListGroupRights, а сообщения типа action-* используются с предложениями вида «У вас нет разрешения ...».
Смотрите также
- Special:ListGroupRights – Ссылка на справку содержащую еще не документированные права.
- Справка:Права и группы участников – справочная страница, описывающая использование интерфейса Special:Userrights (для бюрократов).
- Руководство:Настройка прав участников в MediaWiki – информация об управлении и назначении групп пользователей.
- Manual:$wgNamespaceProtection
- Manual:$wgAutopromote
- Manual:$wgAddGroups, Manual:$wgRemoveGroups
- Руководство:Ограничение доступа – Примеры.
- Manual:Establishing a hierarchy of bureaucrats
- Категория:Расширения пользовательских прав – Расширения и дополнения касающиеся прав пользователей.