Manual:$wgNamespaceProtection

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:$wgNamespaceProtection and the translation is 25% complete.

Other languages:
English • ‎français • ‎polski • ‎中文 • ‎日本語
名前空間: $wgNamespaceProtection
Which namespaces can be edited by whom?
導入されたバージョン:1.10.0 (r19110)
除去されたバージョン:使用中
許容される値:(配列の配列)
既定値:$wgNamespaceProtection = []; (1.14+)
$wgNamespaceProtection[NS_MEDIAWIKI] = array( 'editinterface' ); (1.10 - 1.13)
その他の設定: アルファベット順 | 機能順

詳細

This setting allows a wiki to require special permissions to edit some namespaces. By default, the only restriction is that the MediaWiki namespace can only be edited by users with the 'editinterface ' permission (by default: sysops).

The keys of the array are namespace numbers, and the values are simple arrays of permission names. If you list more than one permission for a given namespace, a user must have all of them to edit pages in that namespace.

Since 1.14, the MediaWiki: namespace is unconditionally protected to users with 'editinterface' right (same as in previous versions). This is set in Setup.php and cannot be modified in LocalSettings.php since otherwise it's too easy to set it incorrectly and leave the wiki insecure. If you want to allow other groups than sysops to edit the MediaWiki: namespace, then grant the 'editinterface' right to those groups.

It's not possible to restrict read access to a certain namespace with $wgNamespaceProtection. (Extension:Lockdown を参照)

Restricting editing of the main namespace

$wgNamespaceProtection[NS_MAIN]      = array( 'edit-main' );

This restricts editing in the main namespace to people in a group that has the edit-main permission.

Setting up custom namespaces with restricted write access

define("NS_OFFICIAL", 100);
define("NS_OFFICIAL_TALK", 101);

$wgExtraNamespaces = 
    array(NS_OFFICIAL => "Official",
          NS_OFFICIAL_TALK => "Official_talk",
    );

$wgNamespaceProtection[NS_OFFICIAL]      = array( 'official-edit' );
$wgNamespaceProtection[NS_OFFICIAL_TALK] = array( 'official-talk-edit' );

$wgGroupPermissions['managers']['official-edit'] = true; // only managers can edit pages in the Official namespace
$wgGroupPermissions['employees']['official-talk-edit'] = true; // employees can edit pages in the Official_talk namespace
$wgGroupPermissions['managers']['official-talk-edit'] = true; // so can managers

トークページの無効化

Since "everyone" is not a core permission, literally everyone gets denied access (including sysops). Note that you'll still need to remove the tab through other methods (see: Manual:よくある質問 )

# Disable all core TALK namespaces
$wgNamespaceProtection[NS_TALK] = ['everyone'];
$wgNamespaceProtection[NS_USER_TALK] = ['everyone'];
$wgNamespaceProtection[NS_PROJECT_TALK] = ['everyone'];
$wgNamespaceProtection[NS_FILE_TALK] = ['everyone'];
$wgNamespaceProtection[NS_MEDIAWIKI_TALK] = ['everyone'];
$wgNamespaceProtection[NS_TEMPLATE_TALK] = ['everyone'];
$wgNamespaceProtection[NS_HELP_TALK] = ['everyone'];
$wgNamespaceProtection[NS_CATEGORY_TALK] = ['everyone'];

関連項目