Roundcubeでのユーザー情報の取得方法について紹介します。
①ユーザー情報
ユーザー情報の取得方法は以下のようになります。
$rc = rcmail::get_instance();
$user_data = $rc->user->data;
error_log(print_r($user_data,true));
このような情報が取得できます。
(
[user_id] => 4
[username] => foo
[mail_host] => 192.168.15.117
[alias] =>
[created] => 2013-04-11 10:14:23
[last_login] => 2013-05-17 07:45:24
[language] => ja_JP
[preferences] => a:5:{s:16:"message_sort_col";s:7:"subject";s:18:"message_sort_order";s:3:"ASC";s:8:"timezone";s:4:"auto";s:4:"skin";s:5:"larry";s:17:"message_threading";a:0:{}}
)
②識別情報
Roundcubeでは設定画面から識別情報を登録出来ます。
以下のようにして識別情報を取得出来ます。
$rc = rcmail::get_instance();
$identity = $rc->user->get_identity();
error_log(print_r($identity,true));
(
[identity_id] => 4
[user_id] => 4
[changed] => 2013-05-17 12:28:06
[del] => 0
[standard] => 1
[name] => テスト
[organization] => bar
[email] => foo@roundcube.com
[reply-to] => hoge@roundcube.com
[bcc] => test@roundcube.com
[signature] => 署名
[html_signature] => 0
)
③特定のユーザーの情報を取得する方法。
$rc = rcmail::get_instance();
$identity = $rc->user->get_identity();
上記のようにユーザー情報を取得する場合、ログインユーザーの情報を取得します。
その理由は、rcmailクラスの188行目が以下のようになっているからです。
// create user object
$this->set_user(new rcube_user($_SESSION['user_id']));
ということで、Roundcubeのuser_idがわかれば、rcube_userクラスをインスタンス化し
ユーザー情報やユーザーの識別情報を取得出来ます。
例えば、次のようになります。
$user_id = 4;
$user = new rcube_user($user_id);
$user_data = $user->data;
$user_identity = $user->get_identity();
error_log(print_r($user_data,true));
error_log(print_r($user_identity,true));