2018年01月26日
MediaWikiで特定のページの閲覧制限を設定する
お休み前にMediawikiというWikipediaなんかで使用しているソフトウェアを使っていました。
「管理者以外に見せたくないページ」が出てきてしまったので、
無理くり対応したときの対応方法をまとめておきます。
※Mediawikiってなーに?という方は、こちらを参照。
https://www.mediawiki.org/wiki/MediaWiki/ja
①Lockdownをダウンロード・インストールする
https://www.mediawiki.org/wiki/Extension:Lockdown/ja
②<インストールディレクトリ>/extensions/Lockdown内にモジュールが配置されていることを確認する
③インストールディレクトリ内のLocalSettings.phpを修正する
// 管理者用ページの閲覧制限設定
// Lockdown用設定
require_once "$IP/extensions/Lockdown/Lockdown.php"; ←Lockdownを使用するための定義(※1)
// 名前空間の定義
define("HOGE", 100); ←番号は既存のものと被らないように100とする
$wgExtraNamespaces[HOGE] = "Hoge"; ←新しい名前空間にどんなページ名(これだとHoge:で始まるページになる)をつけるかを定義
// 閲覧制限
$wgNamespacePermissionLockdown[100]['*'] = array('sysop'); ←デフォルトの管理者以外は閲覧・修正・ページ作成などなどあらゆる操作不可(※2)
④httpd再起動
あとは、閲覧制限をかけたいページを、新しく作成した名前空間の下で作成すれば、管理者以外には閲覧制限(というより、全ての操作制限)がかかります。
※1 wgNamespacePermissionLockdownなど、Lockdownの機能を使用する定義の前に記載しないとうまく動きませんでした…。
※2 修正だけさせたくないのであれば、$wgNamespacePermissionLockdown[100]['edit'] みたいな形にすればOKです。
参考:
Mediawikiの名前空間: https://www.mediawiki.org/wiki/Manual:Namespace/ja
Mediawikiのカスタム名前空間: https://www.mediawiki.org/wiki/Manual:Using_custom_namespaces/ja
Mediawikiの利用者権限: https://www.mediawiki.org/wiki/Manual:User_rights/ja
※Mediawikiではこういう使用方法は想定されていないため、あまり推奨はされていないようです…。
「管理者以外に見せたくないページ」が出てきてしまったので、
無理くり対応したときの対応方法をまとめておきます。
※Mediawikiってなーに?という方は、こちらを参照。
https://www.mediawiki.org/wiki/MediaWiki/ja
①Lockdownをダウンロード・インストールする
https://www.mediawiki.org/wiki/Extension:Lockdown/ja
②<インストールディレクトリ>/extensions/Lockdown内にモジュールが配置されていることを確認する
③インストールディレクトリ内のLocalSettings.phpを修正する
// 管理者用ページの閲覧制限設定
// Lockdown用設定
require_once "$IP/extensions/Lockdown/Lockdown.php"; ←Lockdownを使用するための定義(※1)
// 名前空間の定義
define("HOGE", 100); ←番号は既存のものと被らないように100とする
$wgExtraNamespaces[HOGE] = "Hoge"; ←新しい名前空間にどんなページ名(これだとHoge:で始まるページになる)をつけるかを定義
// 閲覧制限
$wgNamespacePermissionLockdown[100]['*'] = array('sysop'); ←デフォルトの管理者以外は閲覧・修正・ページ作成などなどあらゆる操作不可(※2)
④httpd再起動
あとは、閲覧制限をかけたいページを、新しく作成した名前空間の下で作成すれば、管理者以外には閲覧制限(というより、全ての操作制限)がかかります。
※1 wgNamespacePermissionLockdownなど、Lockdownの機能を使用する定義の前に記載しないとうまく動きませんでした…。
※2 修正だけさせたくないのであれば、$wgNamespacePermissionLockdown[100]['edit'] みたいな形にすればOKです。
参考:
Mediawikiの名前空間: https://www.mediawiki.org/wiki/Manual:Namespace/ja
Mediawikiのカスタム名前空間: https://www.mediawiki.org/wiki/Manual:Using_custom_namespaces/ja
Mediawikiの利用者権限: https://www.mediawiki.org/wiki/Manual:User_rights/ja
※Mediawikiではこういう使用方法は想定されていないため、あまり推奨はされていないようです…。
riku_cha at 11:30│Comments(0)│サーバ