「システム管理者」(is_superuser)をオンにするCGI

Movable Type 3.2では、機能の追加に伴って、データベースにいくつかのフィールドが追加されています。

投稿者の設定の画面に「システム管理者」というチェックボックスがあり、それがオンになっている人は、投稿者を追加したり、他の投稿者の権限を設定したりなど、システムの管理を行うことができます。
システム管理者かどうかは、投稿者(author)テーブルに追加された「is_superuser」というフィールドに保存されます。

ところが、Movable Type 3.2にバージョンアップする際に、状況によってこのフィールドの値が正しく設定されず、システム管理ができなくなってしまうことがあります。
システム管理ができないと、上記の設定を行えない他、StyleCatcherMT-Notifierのプラグインの設定ができないなどの問題が起こります。

参照:

そこで、特定の投稿者をシステム管理者にするCGIを作ってみました。

使い方は以下の通りです。

1.ダウンロードとインストール

以下のアドレスに接続すると、CGIのソースファイルが表示されます。

mt-set-superuser.txt

ソースファイルの内容をすべてコピーし、メモ帳などに貼り付けて、「mt-set-superuser.cgi」のファイル名で保存します。
そして、Movable Typeのインストール先にアップロードし、パーミッションを「755」などに変えて実行可能に設定します。

2.CGIの実行

以下のURLにアクセスすると、指定した投稿者がシステム管理者になります。

http://Movable TypeのURL/mt-set-superuser.cgi?author=投稿者名

例えば、Movable Typeを「http://www.foo.com/mt/」にインストールしていて、投稿者「Melody」をシステム管理者にするには、以下のURLにアクセスします。

http://www.foo.com/mt/mt-set-superuser.cgi?author=Melody

CGIが正しく動作すると、「author ○○○ is set to superuser」と表示されます。

なお、投稿者名を日本語にしている場合は、「author=」で指定する投稿者名をURLエンコードしてください。
例えば、投稿者を「太郎」にしていて、Movable Typeの文字コードをutf-8にしてるとします。
この場合、「太郎」をutf-8でURLエンコードすると「%e5%a4%aa%e9%83%8e」になりますので、「author=%e5%a4%aa%e9%83%8e」と指定します。
URLエンコードは、以下のページで行うと良いでしょう。

URLエンコード・デコードフォーム

3.確認と後処理

CGIを実行したら、システム管理者に設定した投稿者でMovable Typeにログインし、システム管理者になっていることを確認します。
確認ができたら、「mt-set-superuser.cgi」をサーバーから削除しておいてください。