MediaWiki での権限管理

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

ご無沙汰しております。2年目になってしまいましたsです。

最近情報共有のために社内でWikiを利用しています。

MediaWiki での権限管理

Wiki関係のシステムやサービスは多々あります。
社内Wiliを作成するにあたり

  • 自社内でサーバ管理できる
  • UIがお馴染みのWikipediaさん

という特徴があるMediaWikiを採用しました。

さて、社内など複数人でWiki利用するときに問題になるのは権限管理ですね。
今回はMediaWikiのデフォルト機能で管理できるものから関係する拡張機能まで、MediaWiki権限管理についてまとめたいと思います。

MediaWikiを使ったWiki管理をしている人に役立てば幸いです。

【前提】

権限管理だけではないですが、以下記述する設定文はmediawikiディレクトリ直下の“LocalSetting.php”に書き込みます。
ちなみに、私は管理しやすいように、別途権限管理用のPHPファイルを作成し読み込むようにしています。

【デフォルト機能で権限管理】

(1)匿名ユーザをブロック

デフォルトでもユーザグループ作成や閲覧・編集・削除などの権限管理はできます。
セキュリティ上必須ですね。

$wgGroupPermissions['{権限付与・禁止の対象}']['{権限の種類}'] = {trueで許可falseで禁止};
を利用し、ひとまず全てのユーザに対して閲覧を禁止してしまいます。

$wgGroupPermissions['*']['read'] = false; //閲覧禁止

(2)一部ユーザに特定の権限付与

匿名ユーザに閲覧を禁止してから、特定のユーザに対して権限を付与していきます。

$wgGroupPermissions['admage_user']['read'] = true; //admage_userへ閲覧許可

ちなみに最初”グループを作る”という作業がなく戸惑ったのは私だけではないかと。

$wgGroupPermissionsで権限を適当にグループ名を書くだけでグループとして処理されるのですね。

(3)特定ページの閲覧許可

匿名ユーザは閲覧できないようにしたいとはいえ、ログインページすら閲覧できないとログインできないので$wgWhitelistRead = array ("{許可を与えたいページ名}");を利用して以下を追加します。

$wgWhitelistRead = array ("Special:Userlogin"); //特別ページのユーザログインページのみ全てのユーザに閲覧許可

【拡張機能で権限管理】

さて、今回は、以下の2点においてより詳細な管理が必要となりました。

  • ユニット別に編集権限を管理したい
  • ユニット内でも特定の管理者にのみカテゴリー作成権限を与えたい

こういったより詳細な範囲で管理するときは拡張機能を導入すると便利ですね。

MediaWikiの拡張機能はMediaWikiディレクトリ内のExtensionに保存し、読み込むだけでいいので楽です。

(1)カテゴリ別管理

拡張機能のCategoryControlを利用します。

require_once("$IP/extensions/CategoryControl.php");

で読み込むと、$wgCategoryPermissionsという配列が使えるようになります。

$wgCategoryPermissions['{対象となるカテゴリ名}'][‘{権限の種類} '][] = '{対象となるユーザグループ名}';

で設定します。

//admage_userに”ADMAGE管理”というカテゴリの編集権限付与
$wgCategoryPermissions['ADMAGE管理'][‘edit '][] = 'admage_user';

(2)名前空間別管理

MediaWikiは通常記事の他にカテゴリーやトークといった名前空間がありますが、カテゴリーなど誰でも彼でも編集されると混乱をきたすので制限を設けたいですよね。
というところで拡張機能のLockdownを利用します。

require_once "$IP/extensions/Lockdown/Lockdown.php";
$wgNamespacePermissionLockdown[{名前空間名}]['{権限の種類}']=array('{対象となるユーザグループ名}’);

//admage_adと管理者グループにカテゴリページの編集権限付与
$wgNamespacePermissionLockdown[NS_CATEGORY]['edit']=array('admage_ad’, 'sysop');

以上で、なんとかWikiの管理ができるようになりました。

まあ複数人で利用するWikiで大事なのは「全員に利用し続けてもらう」という点なので、その辺を今後は勉強していきたいですね……




広告システムについてのお問い合わせやご相談、パッケージ製品の詳細はこちらからどうぞ。
http://admage.jp/
アプリ計測SDK admage for Appのお問い合わせ・詳細はこちら。
http://apptizer.jp/

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

コメントを残す

*