2008年7月12日

Deki Wiki で "Failed to lookup an administrator for impersonation."

ラージトゥース・ソーフィッシュ Pristis microdon (Latham, 1794) 動物界(Animalia) 脊索動物門(Chordata) 軟骨魚綱(Chondrichthyes) ノコギリエイ目(Pristiformes) ノコギリエイ科(Pristidae) Pristis属(Pristis)

 先日、インストールした Deki Wiki を使おうと、初めてログインを行う。ユーザー名は "OpenCage" を Admin としてインストールしたのだが、以下のエラーが出てログインできない状況になった。

Internal Error (500)
Failed to lookup an administrator for impersonation. Please set 'security/admin-user-for-impersonation' to the name of the admin user to impersonate. Tried: sysop,admin


 要は、管理者として振舞えるユーザを見つけることができなかったので、'security/admin-user-for-impersonation' にadmin権限を与えるユーザー名をセットして、とのこと。

 ネットで検索すると4件ほどしか情報が見つからなかったが、最終的に、How do I...Get an overview of configuration settings? というページが見つかった。

 ざーと斜め読みして、データベースの内容を直接確認してみることにした。ターミナルからMySQL のデータを覗いてみると、users というテーブルには、OpenCage と Anonymous しかユーザが登録されていない。そして、config テーブルに security/admin-user-for-impersonation というエントリー(レコード)が無いことを確認した。

 ここから、検証する方法は2つ。admin を新規ユーザー登録するか、configテーブルに security/admin-user-for-impersonation を作成するかだが、まず、admin ユーザーを作成したところ、無事ログインができ、OpenCageアカウントでもログインできることを確認した。

 次に、adminユーザーが不存在の場合に 'security/admin-user-for-impersonation' を OpenCage に対して有効できるかを確認しようと、admin ユーザーを削除。OpenCageでログインできないことを確認しようと、いったんログアウトしてからログインすると、予想外にすんなりとログインすることができた。ユーザー情報のページで、OpenCage が admin権限を持っていることを確認できた。

 ということで、Deki Wiki を新規インストールした場合の注意点として、セットアップ時に admin か、sysop 以外のユーザー名で登録した場合は、あらかじめ、データベースの config テーブルに、security/admin-user-for-impersonation というレコードを追加し、セットアップ時に設定したアカウントを設定するか、admin か sysop アカウントを新規登録しなければならないということになる。前者の場合は、データベースへのアクセスが必要になるので、SQL に関するちょっとした知識が必要になる。SQLって何?とか、データベースに直接アクセスするすべが無い場合は、admin か sysop のユーザーを一旦作ればいいということになる。一旦ログインしてしまえば、admin|sysop アカウントを削除しても問題ないようだ。

 admin という名前のユーザーを保持しておきたくないという需要は少なくないと思われるので、この初期設定は躓きやすいかもしれない。

0 件のコメント: