Mediawiki/lockdown

Ограничение доступа к определенным служебным страницам с помощью Lockdown
require_once( "$IP/extensions/Lockdown/Lockdown.php" ); $wgSpecialPageLockdown['Export'] = array('sysop'); //Запрет экспорта $wgSpecialPageLockdown['Recentchanges'] = array('sysop'); //Запрет просмотра последних правок $wgSpecialPageLockdown['Recentchangeslinked'] = array('sysop'); //Запрет просмотра связанных последних правок $wgSpecialPageLockdown['Listusers'] = array('sysop'); //Запрет просмотра списка пользователей $wgSpecialPageLockdown['Activeusers'] = array('sysop'); //Запрет просмотра списка активных пользователей $wgSpecialPageLockdown['Newimages'] = array('sysop'); //Запрет просмотра списка новых изображений $wgSpecialPageLockdown['Log'] = array('sysop'); //Запрет просмотра журналов $wgSpecialPageLockdown['Newpages'] = array('sysop'); //Запрет просмотра списка новых страниц $wgSpecialPageLockdown['MergeHistory'] = array('sysop'); //Запрет на объединение истории правок

Ограничение доступа по группам MW
Создадим три группы — reader (чтобы кому-то дать почитать содержимое), author (все права, кроме присвоения флагов читателя и редактора), founder (вообще все права, включая временное запирание базы данных проекта).

В файл LocalSettings.php добавьте строки:

$wgGroupPermissions = array; $wgGroupPermissions['reader']['read'] = true; $wgGroupPermissions['reader']['purge'] = true; $wgAddGroups['author'] = array; $wgRemoveGroups['author'] = array('reader'); # Право снять флаг читателя.
 * 1) Очистить все права по умолчанию. Там много нам ненужного (включая регистрацию новых участников).
 * 1) Группа reader — читатели. Только читать они и могут.
 * 1) Группа reader — читатели. Только читать они и могут.
 * 1) Группа author — уполномоченные редакторы. Могут практически всё.
 * 1) Группа author — уполномоченные редакторы. Могут практически всё.

$wgGroupPermissions['author'] = $wgGroupPermissions['reader']; $wgGroupPermissions['author']['move']            = true; $wgGroupPermissions['author']['move-subpages']   = true; $wgGroupPermissions['author']['move-rootuserpages'] = true; $wgGroupPermissions['author']['edit']            = true; $wgGroupPermissions['author']['createpage']      = true; $wgGroupPermissions['author']['createtalk']      = true; $wgGroupPermissions['author']['writeapi']        = true; $wgGroupPermissions['author']['upload']          = true; $wgGroupPermissions['author']['reupload']        = true; $wgGroupPermissions['author']['reupload-shared'] = true; $wgGroupPermissions['author']['minoredit']       = true; $wgGroupPermissions['author']['autoconfirmed'] = true; $wgGroupPermissions['author']['block']           = true; $wgGroupPermissions['author']['createaccount']   = true; $wgGroupPermissions['author']['delete']          = true; $wgGroupPermissions['author']['bigdelete']       = true; $wgGroupPermissions['author']['deletedhistory']  = true; $wgGroupPermissions['author']['undelete']        = true; $wgGroupPermissions['author']['editinterface']   = true; $wgGroupPermissions['author']['editusercssjs']   = true; $wgGroupPermissions['author']['import']          = true; $wgGroupPermissions['author']['importupload']    = true; $wgGroupPermissions['author']['move']            = true; $wgGroupPermissions['author']['move-subpages']   = true; $wgGroupPermissions['author']['move-rootuserpages'] = true; $wgGroupPermissions['author']['patrol']          = true; $wgGroupPermissions['author']['autopatrol']      = true; $wgGroupPermissions['author']['protect']         = true; $wgGroupPermissions['author']['proxyunbannable'] = true; $wgGroupPermissions['author']['rollback']        = true; $wgGroupPermissions['author']['trackback']       = true; $wgGroupPermissions['author']['upload']          = true; $wgGroupPermissions['author']['reupload']        = true; $wgGroupPermissions['author']['reupload-shared'] = true; $wgGroupPermissions['author']['unwatchedpages']  = true; $wgGroupPermissions['author']['upload_by_url']   = true; $wgGroupPermissions['author']['ipblock-exempt']  = true; $wgGroupPermissions['author']['blockemail']      = true; $wgGroupPermissions['author']['markbotedits']    = true; $wgGroupPermissions['author']['apihighlimits']   = true; $wgGroupPermissions['author']['browsearchive']   = true; $wgGroupPermissions['author']['noratelimit']     = true; $wgGroupPermissions['author']['movefile']        = true; $wgGroupPermissions['author']['mergehistory']    = true; $wgGroupPermissions['author']['noratelimit'] = true; $wgAddGroups['founder'] = array('reader', 'author');   #  Защита: чтобы founder случайно не снял с себя флаг $wgRemoveGroups['founder'] = array('reader', 'author'); # ---/ $wgGroupPermissions['founder'] = $wgGroupPermissions['author']; $wgGroupPermissions['founder']['siteadmin'] = true; $wgEnableAPI = false;
 * 1) Группа founder — аккаунт для выдачи доступа к правам читателя и редактора.
 * 1) Группа founder — аккаунт для выдачи доступа к правам читателя и редактора.
 * 1) Может временно блокировать базу данных от изменений (на случай какой-то перенастройки).
 * 1) Запрет использования API для невозможности чтения свежих правок, списка участников etc.