MediaWikiの設定について
提供: wikipokpok
目次
特定の権限を与えられたユーザーのみアクセスできる名前空間を作る(特定ページへのアクセス制限)
新しいグループを作り、そのグループに属するユーザーのみに閲覧編集等の権限を与える。
1,新しいグループを作成する
LocalSettings.phpに$wgGroupPermissionsを追記する。
例
$wgGroupPermissions['groupname']['move'] = true; $wgGroupPermissions['groupname']['read'] = true; $wgGroupPermissions['groupname']['edit'] = true; $wgGroupPermissions['groupname']['createpage'] = true; $wgGroupPermissions['groupname']['createtalk'] = true; $wgGroupPermissions['groupname']['upload'] = true; $wgGroupPermissions['groupname']['reupload'] = true; $wgGroupPermissions['groupname']['reupload-shared'] = true; $wgGroupPermissions['groupname']['minoredit'] = true;
特別ページのユーザー権限の管理に反映されたgroupnameを、登録ユーザーに割り当てる。
2,新しい名前空間を作成する
LocalSettings.phpに$wgExtraNamespaces,$wgNamespacesWithSubpages, and $wgNamespacesToBeSearchedDefaultを追記する。
例
$wgExtraNamespaces = array(100 => "Hilfe", #スペースは使えない 101 => "Hilfe_Diskussion", 102 => "Aide", 103 => "Discussion_Aide" );
$wgNamespacesWithSubpages
MediaWiki 1.4.x and olderの例:
$wgNamespacesWithSubpages = array( -1 => 0, 0 => 0, 1 => 1, 2 => 1, 3 => 1, 4 => 0, 5 => 1, 6 => 0, 7 => 1, 8 => 0, 9 => 1, 10 => 0,11 => 1, 100 => 1, 101 => 1 );
MediaWiki 1.5.xの例:
$wgNamespacesWithSubpages = array( NS_TALK => true, NS_USER => true, NS_USER_TALK => true, NS_PROJECT_TALK => true, NS_IMAGE_TALK => true, NS_MEDIAWIKI_TALK => true, NS_TEMPLATE_TALK => true, NS_HELP_TALK => true, NS_CATEGORY_TALK => true, 100 => true, 101 => true );
$wgNamespacesToBeSearchedDefault
MediaWiki 1.4.x and olderの例:
$wgNamespacesToBeSearchedDefault = array( -1 => 0, 0 => 1, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 1, 10 => 0, 11 => 1, 100 => 1, 101 => 1 );
MediaWiki 1.5.xの例:
$wgNamespacesToBeSearchedDefault = array( -1 => 0, NS_MAIN => 1, NS_USER => 0, NS_USER_TALK => 0, NS_PROJECT_TALK => 0, NS_IMAGE_TALK => 0, NS_IMAGE_TALK => 0, NS_TEMPLATE_TALK => 0, NS_HELP_TALK => 0, NS_CATEGORY_TALK => 0, 100 => 1, 101 => 1 );
3,Title.php (includes/Title.php)を書き換える
Title.php (old)
if( $wgUser->isAllowed('read') ) { return true; } else { global $wgWhitelistRead;
Title.php (new)
if( $wgUser->isAllowed('read') ) { if( $this->getNamespace() >= 100 ) { if( $wgUser->isAllowed('viewforbidden') ) { return true; } else { return false; } } else { return true; } } else { global $wgWhitelistRead;
4,LocalSettings.phpを編集する
$wgGroupPermissionsを追記する。
$wgGroupPermissions['groupname']['viewforbidden'] = true;
以上で、グループを与えられたユーザーしか、その名前空間にアクセスできできなくなる。