Руководство:Права пользователя
Права пользователя - это разрешения (например, возможность редактирования страницы или блокировки пользователей), которые могут быть назначены настраиваемым группам пользователей. MediaWiki поставляется с набором прав пользователя и групп пользователей по умолчанию, но их можно настроить. На этой странице объясняется работа с правами и группами по умолчанию, а также способы их настройки.
Дополнительные сведения о том, как добавлять и удалять пользователей wiki из групп, смотрите в разделах Справка:Права и группы участников и 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';
# Наконец, устанавливает для него значение true для нужной группы.
$wgGroupPermissions['emailconfirmed']['edit'] = true;
Создание новой группы и назначение ей прав.
Вы можете создавать новые группы пользователей, определяя разрешения для соответствующего имени группы в $wgGroupPermissions['<group-name>']
где <group-name> является фактически актуальным именем группы.
Кроме того, чтобы назначать разрешения, вы должны создать эти три страницы вики с подходящим контентом:
- 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) через 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
, которые добавят расширения, такие как $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 - 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
|
* | 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 | Отметка откатываемых правок как правок бота - см. 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 | Отметка правок других участников как отпатрулированных - $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. |
— | ? |
suppressredirect | Переименование страниц без создания перенаправления со старого имени - requires the move right | bot, sysop | 1.12+ |
Список групп
Следующие группы доступны в последней версии MediaWiki. Если вы используете более старую версию, некоторые из них могут быть не реализованы.
Группа | Описание | Права по умолчанию. | Версии. |
---|---|---|---|
* | Все пользователи (включая анонимных пользователей) | createaccount, createpage, createtalk, edit, editmyoptions, editmyprivateinfo, editmywatchlist, read, viewmyprivateinfo, viewmywatchlist, writeapi | 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, 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 . Вы даже можете создать любую настраиваемую группу, просто назначив им права.
Права по умолчанию.
Права по умолчанию определяются в MainConfigSchema.php .
- Значения по умолчанию в версии HEAD: https://phabricator.wikimedia.org/diffusion/MW/browse/master/includes/MainConfigSchema.php
- Значения по умолчанию в последней стабильной версии MediaWiki версии 1.42 доступны здесь: https://phabricator.wikimedia.org/diffusion/MW/browse/REL1_42/includes/MainConfigSchema.php
- Дополнительные права: Вы должны иметь возможность перечислять все разрешения, доступные в вашей вики, запустив
PermissionManager::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
- Категория:Расширения пользовательских прав – Расширения и дополнения касающиеся прав пользователей.