「MediaWikiの設定について」の版間の差分
提供: wikipokpok
(→特定の権限を与えられたユーザーのみアクセスできる名前空間を作る(特定ページへのアクセス制限)) |
|||
1行目: | 1行目: | ||
− | + | == 特定の権限を与えられたユーザーのみアクセスできる名前空間を作る(特定ページへのアクセス制限) == | |
+ | 新しいグループを作り、そのグループに属するユーザーのみに閲覧編集等の権限を与える。 | ||
+ | === 1,新しいグループを作成する === | ||
+ | LocalSettings.phpに$wgGroupPermissionsを追記する。<br /> | ||
+ | 例 | ||
+ | <pre> | ||
+ | $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; | ||
+ | </pre> | ||
+ | 特別ページのユーザー権限の管理に反映されたgroupnameを、登録ユーザーに割り当てる。。 | ||
+ | |||
+ | === 2,新しい名前空間を作成する === | ||
+ | LocalSettings.phpに$wgExtraNamespaces,$wgNamespacesWithSubpages, and $wgNamespacesToBeSearchedDefaultを追記する。<br /> | ||
+ | 例 | ||
+ | $wgExtraNamespaces = | ||
+ | array(100 => "Hilfe", #スペースは使えない | ||
+ | 101 => "Hilfe_Diskussion", | ||
+ | 102 => "Aide", | ||
+ | 103 => "Discussion_Aide" | ||
+ | ); | ||
+ | |||
+ | <var>$wgNamespacesWithSubpages</var><br /> | ||
+ | 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''' | ||
+ | ); | ||
+ | |||
+ | <var>$wgNamespacesToBeSearchedDefault</var><br /> | ||
+ | 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; | ||
+ | |||
+ | 以上で、グループを与えられたユーザーしか、その名前空間にアクセスできできなくなる。 | ||
+ | |||
+ | === 参考ページ === | ||
+ | http://meta.wikimedia.org/wiki/Preventing_Access | ||
== 特別ページの画像リスト等にパーミッションを設定する == | == 特別ページの画像リスト等にパーミッションを設定する == |
2008年12月2日 (火) 21:16時点における版
目次
特定の権限を与えられたユーザーのみアクセスできる名前空間を作る(特定ページへのアクセス制限)
新しいグループを作り、そのグループに属するユーザーのみに閲覧編集等の権限を与える。
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;
以上で、グループを与えられたユーザーしか、その名前空間にアクセスできできなくなる。
参考ページ
http://meta.wikimedia.org/wiki/Preventing_Access
特別ページの画像リスト等にパーミッションを設定する
$wgGroupPermissions['sysop']['imagelist'] = true; $wgGroupPermissions['sysop']['newimages'] = true; $wgGroupPermissions['sysop']['log'] = true;
LocalSettings.phpに追記する。