俺は最近、MediaWikiを使ったWikiサイトに取り組んでいる。

MediaWikiのサイトで最初のアカウントを作ると「管理者」および「ビューロクラット」権限が付与されるが、Wikipediaに詳しい人なら、何かが足りないことに気付くかもしれない。

「オーバーサイト」と「チェックユーザー」がない!

そう、これらはデフォルトでは存在しない利用者グループになる。

まあ、なくてもそれほど困らないとは思うが……いや、荒らし対策のためにチェックユーザーをしたい場合もあるが……

そこで今回は、MediaWikiのサイトに「オーバーサイト」と「チェックユーザー」を追加する方法を解説する。

ついでに、「管理者」ユーザーが新(?)機能である「版指定削除」をできるように権限を追加する方法も解説する。

なお、この記事で扱うMediaWikiのバージョンは1.28.0である。

オーバーサイトを追加

そもそも「管理者」だとか「ビューロクラット」とかいうものは、MediaWikiでは「利用者グループ」と呼ばれていて、そこに追加する権限が「利用者グループ権限」だ。

これを設定するには、MediaWikiをインストールしたディレクトリにある「LocalSettings.php」を編集する。

この記事では以下、MediaWikiがインストールされたディレクトリを「w」とする。

オーバーサイトとは、利用者名をブロックしたり、特定のログを「管理者」からも隠すことができる利用者グループのことだ。

オーバーサイトの機能は元々MediaWikiに搭載されているが、デフォルトでは無効になっている。

ただ、内部的にはオーバーサイトのための利用者グループ名が予約されており、それを利用して設定する。

以下の内容を「LocalSettings.php」に追加する。

$wgGroupPermissions['suppress']['hideuser'] = true;
$wgGroupPermissions['suppress']['suppressrevision'] = true;

コード内の suppress がオーバーサイトの内部名称であり、 hideuser (利用者名をブロックする)や suppressrevision (履歴を隠す)が権限である。

このコードにより、「suppress」という利用者グループが新設され、これに「hideuser」と「suppressrevision」という利用者グループ権限が付与される、というわけだ。

さらに、サイト内で「suppress」グループのグループ名やプロジェクトページが正しく表示されるようにシステムメッセージを編集……と思いきや、オーバーサイトの利用者グループに関するシステムメッセージは設定済みである。

ただし、そのデフォルトの名称は「オーバーサイト」ではない。

この名称の変更方法は、以下の「チェックユーザー」の設定でまとめて解説する。

チェックユーザーを追加

チェックユーザーとは、編集を行ったログイン利用者のIPアドレス(通常は表示されない)を見たり、あるIPアドレスから行われた編集を確認したりできる利用者グループだ。

チェックユーザーの設定についてだが、こちらはMediaWikiに標準では含まれない機能になる。

MediaWikiのサイトでExtensions(拡張機能)として配布されている。

ほとんど翻訳されてない……

このページの右側にある「スナップショットをダウンロード」というリンクからダウンロードページに行ける。

ダウンロードしたファイルを解凍すると「CheckUser」というフォルダが現れるので、フォルダごと「w」ディレクトリ内の「extension」ディレクトリにアップロード。

次に「LocalSettings.php」を編集する。まず、以下の内容を追加。

$wgGroupPermissions['checkuser']['checkuser'] = true;
$wgGroupPermissions['checkuser']['checkuser-log'] = true;

ついで、拡張機能を読み込むために、以下の1行も追加。

wfLoadExtension( 'CheckUser' );

次に、チェックユーザーを追加するための「メンテナンススクリプト」を実行する。

SSHによってサーバーコマンドを実行するのだが、俺が使っているXdomainの無料「PHP・MySQLサーバー」ではSSHが利用できなかった。

その場合の代替手段は、このブログの以下の記事で説明した。

そして最後に、いよいよシステムメッセージの編集だ。

システムメッセージの一覧は、各自のWikiの「特別:メッセージ一覧」というページで見られるが、何しろあまりに数が多いので、「名前の先頭部分で絞り込む」というところに「Group」と入力して絞り込んだほうがいい。

そうして出てきた一覧に、利用者グループに関するたくさんのシステムメッセージが表示されるが、今回必要なのは以下のメッセージだ。

  • group-checkuser:「チェックユーザー」グループの名前
  • group-checkuser-member:「チェックユーザー」該当者の呼称(性別によって呼称が変わるような言語で必要?)
  • grouppage-checkuser:「チェックユーザー」のプロジェクトページの既定の名前

これらが赤リンク(未作成ページへのリンク)になっているので新規作成しに行くのだが、実はチェックユーザーに関しても既定の名前はシステムによって設定済みで、その名前を変更したい場合のみ編集することになる。

システムメッセージは「MediaWiki:」名前空間にあるページとして存在し、通常のページと同じように編集でき、そのページの内容がWikiの各所で使われる、という仕組みだ。

※ただし、システムメッセージの編集は「管理者」にしかできない。

システムメッセージのページ名の「checkuser」の部分を他の利用者グループに置き換えれば、他の利用者グループの名前も同様に変更できる。

例えば、オーバーサイトの場合は以下の通り。

  • group-suppress
  • group-suppress-member
  • grouppage-suppress

管理者の場合は「sysop」、ビューロクラットの場合は「bureaucrat」に置き換える。

管理者に「版指定削除」権限を追加

版指定削除とは、(著作権や個人情報などで)問題のある編集が行われた場合、履歴から問題のある特定の版だけを隠す機能である。

「削除」と名が付くが、削除するわけではなく隠すのみである。

かつてWikipedia日本語版ではこの目的のために「特定版削除」を行っていたが、現在はより手続きがシンプルで効果的な版指定削除に取って代わったようだ。

この権限はオーバーサイトの権限と同じく、MediaWikiに元々搭載されているが無効になっている。

版指定削除の権限を管理者に追加するには、「LocalSettings.php」 に以下の内容を追加する。

$wgGroupPermissions['sysop']['deleterevision'] = true;
$wgGroupPermissions['sysop']['deletelogentry'] = true;

deleterevision が特定の版を隠す権限、 deletelogentry が履歴の版以外の特定のログ(ページの削除、利用者の追加など)を隠す権限である。

まとめ

今回は、MediaWikiで作ったサイトにWikipediaと同じように「オーバーサイト」「チェックユーザー」を追加し、さらに管理者が「版指定削除」を実行できるようにする設定方法を紹介した。

こうやって見ると、Wikipediaを作るためにはいろいろやらなきゃいけないんだなあ。

他にもインターリンク(外部Wikiなどへの内部リンク形式でのリンク)の設定とかいろいろあるし、Wikipediaを作った人はすごいな。

俺ももうちょっといろいろやってみるが、また何かあれば記事にするつもりだ。

お楽しみに(!?)