Викимедиа Lockdown с существующими пространствами имен

Я использую Media Wiki для документации. После того, как я добавил много страниц с пространством имен, например INTERN:My Page или же Public:My Page и хотите ограничить доступ на чтение для этих существующих пространств имен.

Я нашел расширение "Lockdown" и могу использовать его для новых, пользовательских пространств имен:

define ("NS_CUSTOM", 110);
$wgExtraNamespaces[NS_CUSTOM] = "customNamespace";

$wgNamespacePermissionLockdown[NS_CUSTOM]['*'] = array('sysop');

Если я пытаюсь использовать тот же код для моих существующих пространств имен, старые страницы становятся недоступными - кажется, что страницы не существуют.

Есть ли способ ограничить доступ к существующим пространствам имен? Могу ли я найти идентификатор пространства имен где-нибудь в базе данных?

2 ответа

Согласно документации Lockdown, для уже существующего пространства имен, такого как NS_PROJECT, должно хватить одной строки:

$wgNamespacePermissionLockdown[NS_PROJECT]['*'] = array('sysop');

Из вашего вопроса и вашего собственного ответа недостаточно ясно, как выглядит ваша конфигурация (например, пытаетесь ли вы заблокировать несколько пространств имен и, возможно, допустили там какие-то ошибки). Тем не менее, вы не должны

  1. переопределить существующие пространства имен
  2. повторно использовать определение NS_CUSTOM для разных идентификаторов пространства имен (это вариант 1.)

Я создал новое пользовательское пространство имен

define ("NS_CUSTOM", 111);
$wgExtraNamespaces[NS_CUSTOM] = "customNamespace";
$wgNamespacePermissionLockdown[NS_CUSTOM]['*'] = array('sysop');

и изменил так ряды в page Таблица базы данных для page_namespace = 111

Другие вопросы по тегам