Руководство:Права пользователя

From mediawiki.org
This page is a translated version of the page Manual:User rights and the translation is 59% complete.
Outdated translations are marked like this.

Права пользователя - это разрешения (например, возможность редактирования страницы или блокировки пользователей), которые могут быть назначены настраиваемым группам пользователей. MediaWiki поставляется с набором прав пользователя и групп пользователей по умолчанию, но их можно настроить. На этой странице объясняется работа с правами и группами по умолчанию, а также способы их настройки.

Дополнительные сведения о том, как добавлять и удалять пользователей wiki из групп, смотрите в разделах Справка:Права и группы участников и Manual:Setting user groups in MediaWiki .

Изменение прав групп

После установки MediaWiki по умолчанию назначает определенные стандартные права на группы (смотрите ниже). Вы можете изменить права по умолчанию, отредактировав данные $wgGroupPermissions в LocalSettings.php применяя определенный синтаксис.

$wgGroupPermissions['group']['right'] = true /* или false */;
При установке по умолчанию $GroupPermissions будет устанавливаться в $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
Внимание Внимание: Setting the user right "read" (allow viewing pages) to false will only protect wiki (article, talk, ...) pages, but uploaded files (images, files, docs... in the $wgUploadPath subdirectories) will always remain readable via direct access by default.
Use the information from Manual:Image authorization and img_auth.php pages when you have the need to restrict image views and file download access to only logged-in users.
*, 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 $wgHideUserContribLimit to disable.

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+
writeapi Использование API для записи - requires the edit right *, user, bot 1.13+
Хотя эти разрешения управляют отдельными вещами, иногда для выполнения определенных действий пользователем одной из групп требуется сразу несколько разрешений. Например, открытие прав для определенной группы чтобы люди могли редактировать, но не читать страницы, не имеет смысла, поскольку для редактирования страницы пользователь должен сначала ее прочитать (Предполагается, что ни одна страница не включена в белый список). Разрешение загрузки, но отсутствие разрешения на редактирование страницы не имеет смысла, поскольку для загрузки изображения пользователь должен неявно создавать страницу описания изображения и т.д.

Список групп

Следующие группы доступны в последней версии 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 Зарегистрированные пользователи (аккаунты). 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 .

Добавление новых прав.

Информация для кодеров.

Если вы добавляете новое право в ядро, например, управлять новой специальной страницей, вы делаете 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-* используются с предложениями вида «У вас нет разрешения ...».


Смотрите также