Руководство:Права пользователя
Права пользователя - это разрешения (например, возможность редактирования страницы или блокировки пользователей), которые могут быть назначены настраиваемым группам пользователей. MediaWiki ships with a default set of user rights and user groups, but these can be customized. This page explains the default rights and groups and how to customize them.
For information about how to add and remove individual wiki users from groups, see Справка:Права и группы пользователей and Manual:Setting user groups in 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';
# Finally, set it to true for the desired group.
$wgGroupPermissions['emailconfirmed']['edit'] = true;
Создание новой группы и назначение ей прав.
Вы можете создавать новые группы пользователей, определяя разрешения для соответствующего имени группы в $wgGroupPermissions['<group-name>']
где <group-name> является фактически актуальным именем группы.
Кроме того, чтобы назначать разрешения, вы должны создать эти три страницы вики с подходящим контентом:
- 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
)
По умолчанию бюрократы могут добавлять пользователей или удалять их из любой группы. Однако, если вы используете Руководство:$wgAddGroups и Руководство:$wgRemoveGroups , вам может потребоваться настроить их.
Примеры
В данном примере будет создана произвольная группа «projectmember», которая может блокировать пользователей и удалять страницы, а их изменения скрыты по умолчанию в журнале последних изменений:
$wgGroupPermissions['projectmember']['bot'] = true;
$wgGroupPermissions['projectmember']['block'] = true;
$wgGroupPermissions['projectmember']['delete'] = true;
'random-group'
или 'random_group'
вместо '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
)
Это гарантирует, что группа будет называться «Участники проекта» по всему интерфейсу, а член будет называться «Участники проекта», а в обзорах будет указана ссылка на имя группы Project:Участники проекта.
В данном примере по умолчанию отключается доступ на запись (редактирование и создание страницы), создается группа с именем «Write» которой и предоставляется возможность записи. Пользователи могут быть добавлены вручную в эту группу (Write) через 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 из коробки поставляется с несколькими привилегированными группами.
Большинство этих групп можно удалить, отключив соответствующие ключи массива: $wgGroupPermissions['<Имя-группы>']
.
Подробнее смотрите далее.
Пример
Этот пример полностью удалит группу бюрократы.
Необходимо убедиться, что все шесть из этих переменных не настроены для любой группы, которую вы хотите удалить из списка Special:ListGroupRights; однако достаточно просто удалить $wgGroupPermissions, чтобы удалить его из Special:UserRights.
Этот код должен быть размещен после строк require_once
, которые добавят расширения, такие как Extension:Renameuser , содержащие код, который по умолчанию дает полномочия для группы бюрократов.
unset( $wgGroupPermissions['bureaucrat'] );
unset( $wgRevokePermissions['bureaucrat'] );
unset( $wgAddGroups['bureaucrat'] );
unset( $wgRemoveGroups['bureaucrat'] );
unset( $wgGroupsAddToSelf['bureaucrat'] );
unset( $wgGroupsRemoveFromSelf['bureaucrat'] );
В некоторых расширениях (Flow, Semantic MediaWiki и др.) права добавляются во время регистрации продления или в функции регистрации. В этом случае может потребоваться использование функции регистрации в LocalSettings.php для удаления определенных "предустановленных" групп пользователей:
$wgExtensionFunctions[] = function() use ( &$wgGroupPermissions ) {
unset( $wgGroupPermissions['oversight'] );
unset( $wgGroupPermissions['flow-bot'] );
};
Примечания к группе с названием "user"
С помощью данного механизма вы можете удалить группы sysop, bureaucrat и bot, которые - если используются - могут быть назначены с помощью обычной user permission system.
Однако в настоящее время невозможно удалить группу user
.
Эта группа не назначается через обычную систему разрешений.
Вместо этого каждый зарегистрированный пользователь автоматически входит в эту группу.
Это жестко закодировано в MediaWiki и в настоящее время не может быть легко изменено.
Список прав
Следующие права пользователя доступны в последней версии MediaWiki. Если вы используете более старую версию, посмотрите на странице «Special:Version» в своей вики включена ли ваша версия в столбце «версии» (versions).
Права | Описание | Группы пользователей, которые имеют это право по умолчанию. | Версии. |
---|---|---|---|
Чтение | |||
read | Просмотр страниц - когда установлено значение false, переопределяется для определенных страниц с помощью $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 | Переименование страниц категорий - требует права move | user, sysop | 1.25+ |
move-rootuserpages | Переименование корневых страниц участников - требует права move | user, sysop | 1.14+ |
move-subpages | Переименование страниц с их подстраницами - требует права move | user, sysop | 1.13+ |
movefile | Переименование файлов - требует права move и $wgAllowImageMoving | 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 и $wgEnableUploads | user, sysop | 1.5+ |
upload_by_url | Загрузка файлов с адреса URL - требует права upload (Prior to 1.20 it was given to sysops) | — | 1.8+ |
Управление. | |||
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.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 | |
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 | * | 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 | Редактирование своего списка наблюдения (обратите внимание, что некоторые действия будут добавлять страницы даже без такого права). | * | 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+ |
markbotedits | Отметка откатываемых правок как правок бота - see Manual:Administrators#Rollback - 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 | Изменение прав участников на других википроектах | — | 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 | 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. |
— | ? |
purge | Очистка кэша страницы - URL parameter "&action=purge "
|
user | 1.10+ |
suppressredirect | Переименование страниц без создания перенаправления со старого имени - requires the move right | bot, sysop | 1.12+ |
writeapi | Использование API для записи - requires the edit right | *, user, bot | 1.13+ |
Список групп
Следующие группы доступны в последней версии MediaWiki. Если вы используете более старую версию, некоторые из них могут быть не реализованы.
Группа | Описание | Права по умолчанию. | Версии. |
---|---|---|---|
* | Все пользователи (включая анонимных пользователей) | createaccount, createpage, createtalk, edit, editmyoptions, editmyprivateinfo, editmywatchlist, read, viewmyprivateinfo, viewmywatchlist, writeapi | 1.5+ |
user | Зарегистрированные пользователи (аккаунты). | 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, writeapi | |
autoconfirmed | зарегистрированные пользователи как минимум $wgAutoConfirmAge и имеющие как минимум столько же изменений, сколько $wgAutoConfirmCount . | autoconfirmed, editsemiprotected | 1.6+ |
bot | Аккаунты с правами bot (используется автоматизированными скриптами). | autoconfirmed, autopatrol, apihighlimits, bot, editsemiprotected, nominornewtalk, suppressredirect, writeapi | 1.5+ |
sysop | пользователи, которые по умолчанию могут удалять и восстанавливать страницы, блокировать и разблокировать пользователей и т.д. | 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 | Редактировать страницы, заканчивающиеся на js и css. | editinterface, editsitecss, editsitejs, editsitejson, editusercss, edituserjs, edituserjson | 1.32+ |
bureaucrat | пользователи которые по умолчанию могут изменять права других пользователей. | noratelimit, userrights | 1.5+ |
suppress | deletelogentry, deleterevision, hideuser, suppressionlog, suppressrevision, viewsuppressed |
Из MW 1.12 вы можете создавать свои собственные группы, в которых пользователи автоматически повышаются (например, с помощью autoconfirmed и emailconfirmed), используя $wgAutopromote . Вы даже можете создать любую настраиваемую группу, просто назначив им права.
Права по умолчанию.
Права по умолчанию определяются в DefaultSettings.php .
- Значения по умолчанию в версии HEAD: https://phabricator.wikimedia.org/diffusion/MW/browse/master/includes/DefaultSettings.php
- Значения по умолчанию в последней стабильной версии MediaWiki версии 1.38 доступны здесь: https://phabricator.wikimedia.org/diffusion/MW/browse/REL1_38/includes/DefaultSettings.php
- Дополнительные права: Вы должны иметь возможность перечислять все разрешения, доступные в вашей вики, запустив
User::getAllRights()
.
Добавление новых прав.
Информация для кодеров.
Если вы добавляете новое право в ядро, например, управлять новой специальной страницей, вы делаете required (запрос), чтобы добавить его в список доступных прав PermissionManager.php , $coreRights
(example).
Если вы делаете так в расширении , то вам лучше использовать $wgAvailableRights .
Вероятно, вы сможете присвоить это некоторой группе пользователей, отредактировав $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 (для бюрократов).
- Manual:Setting user groups in MediaWiki – информация об управлении и назначении групп пользователей.
- Manual:$wgNamespaceProtection
- Manual:$wgAutopromote
- Руководство:$wgAddGroups , Руководство:$wgRemoveGroups
- Руководство:Ограничение доступа – Примеры.
- Manual:Establishing a hierarchy of bureaucrats
- Категория:Расширения пользовательских прав – Расширения и дополнения касающиеся прав пользователей.