2013年9月17日火曜日

vTigerCRMにてログイン後に画面が真っ白(Blank Page)なる

現在、新たにvTigerCRM5.4を構築してカスタマイズ中なのですが、 その作業中になんと特定のユーザーでログインすると画面が真っ白になるという現象が発生しました。



作業していた方は非常に驚いてたみたいですが、私はもっと驚きました。

ちょっと調べてみてもエラーも特に出力していないし、本腰入れて調べないとだめだなーと。

確認してみると、どうやらある特定のプロファイルに紐づくユーザーにこの現象が発生しています。

この現象の事例を調べてみると、user_privileges ディレクトリの権限が間違っている場合に近い現状が発生するという事例が見つかりました。

詳しくは下記のリンク先を参照してください。 詳しくは下記のリンク先を参照してください。
ただし、今回はuser_privilegesの権限は間違っていません。

ちょっと悩んだ結果、身に覚えあった不具合として、 下記の画像の共有条件の下から3段目のように名称がセットされていない謎のモジュールのごみが残っていたのを思い出しました。
 66c19942ab4ba346fdb64ccc04cde373
確認したところ、自前で拡張したモジュール追加時にインストールに失敗したモジュールの残骸でした。
ダメになったプロファイルは、そのモジュールに直接関連しているものです。 ごみが残っているテーブルは、vtiger_def_org_share とvtiger_def_org_field 。
vtiger_def_org_shareのpermissionがNULLのままという形で残っていました。
こちらを削除して、権限の再計算を走らせると無事回復。
よかったー。
ちなみにですが、vtigerCRMはUIからモジュールをアンインストールするといった機能はありません。
以下のようなコードを自分で書いて実行する必要があります。
[php]
include_once('vtlib/Vtiger/Module.php');
$module = Vtiger_Module::getInstance('TestModule');
if($module) {
$module->delete();
}
[/php]

たいした話ではないのですが、わかり辛いですよね。