目的
閲覧専用のウィキペディアを構築する
環境
Mediawiki 1.31.1
LocalSettings.phpで利用者権限の制限を定義する
オードソックスなやり方ですね。以下のサイトを参考にしてLocalSettings.phpを編集すれば良いでしょう。
Manual:利用者権限
https://www.mediawiki.org/wiki/Manual:User_rights/ja#%E6%A8%A9%E9%99%90%E3%81%AE%E4%B8%80%E8%A6%A7
変更点
以下をLocalSettings.phpに追記。ユーザーグループは、匿名ユーザ、登録ユーザ、管理者しかいないものと仮定しています。
GPermission('createaccount'); GPermission('edit'); function GPermission($item){ $wgGroupPermissions['*'][$item] = false; $wgGroupPermissions['user'][$item] = false; $wgGroupPermissions['sysop'][$item] = true; return TRUE; }
ソースを管理者以外に表示しない
何をしでかすか分からないので表示させないようにする。
EditPage.phpの以下のこのあたり
$out->addHTML( $this->editFormTextBeforeContent ); $this->showTextbox( $text, 'wpTextbox1', [ 'readonly' ] ); $out->addHTML( $this->editFormTextAfterContent );
以下に書き換え
$out->addHTML( $this->editFormTextBeforeContent ); global $wgUser; if ( in_array('sysop', $wgUser->getGroups()) ) { $this->showTextbox( $text, 'wpTextbox1', [ 'readonly' ] ); } $out->addHTML( $this->editFormTextAfterContent );
動作確認ok
actionを限定する。例えばaction=purgeさせないようにする
https://www.mediawiki.org/wiki/API:Restricting_API_usage/ja
https://www.mediawiki.org/wiki/Manual:Hooks/ApiCheckCanExecute
以上を参考にして管理者以外のactionを限定する。
うまくいかない
保留