Legacy User Overview;ja
From xoopscube
Contents |
ユーザオブジェクトの概観
XOOPS Cube Legacyは2種類のユーザ情報を持っています。そのひとつは互換性のためのXoopsUser??で、もうひとつがXOOPS Cubeレイヤー内のプリンシパルオブジェクトです。
説明
XOOPS CubeはXOOPS2とは異なり、ロールに基づいた権限が設計されています。なので、モジュール側はコンテクストオブジェクトを通して、カレントユーザのロールを検証することが可能です。XOOPS2の'module_read'および、'module_admin'のパーミッションはロールに変換されます。grouppermハンドラを利用してパーミッションを確認することはできますが、Cubeの新しいスタイルで確認することが望ましいです。
プリンシパルオブジェクトはどこ?
プリンシパルオブジェクトはコンテクストオブジェクトを通してアクセス可能です。コンテクストオブジェクトはカレントアクセスについてのさまざまな情報を持っており、それらを引き出すことができます。その手始めに、XCube_Rootオブジェクトを取得する必要があります。
$root =& XCube_Root::getSingleton();
そうして、ルートの属性であるコンテクストオブジェクトを通して、プリンシパルオブジェクトにアクセスできるようになります。
$root->mContext->mUser...
コントローラオブジェクトにアクセス可能なら、次のような手段でプリンシパルオブジェクトを取得することもできます。
$controller->mRoot->mContext->mUser...
システムロール
Legacyがユーザのログインを保持しているとき、システムロールは現在のプリンシパルオブジェクトに追加されます。$xoopsUserは匿名ユーザの場合nullになるので、パーミッションを検証するには不向きです。一方、プリンシパルオブジェクトはモジュールやブロックでいつでも使うことができます。
Site.GuestUser
これは匿名ユーザのための特別なロールです。
/* XOOPS2 スタイル */
if (!is_object($xoopsUser)) ....
/* Cube スタイル */
$root =& XCube_Root::getSingleton();
if ($root->mContext->mUser->isInRole('Site.GuestUser')) ...
Site.RegisteredUser
これは登録ユーザのための特別なロールです。これは登録後のユーザに付与されるロールで、ユーザが XOOPS_GROUP_USERSに属しているか確認することができます。
Site.Administrator
このロールは管理人に付与されるものです。ここで言う管理人とは、最低ひとつのモジュールの管理権限を与えられているユーザのことです。言い換えれば、このロールは管理画面にアクセスできるユーザに与えられるということです。
Site.Owner
このロールはサイト所有者に与えられます。サイト所有者とは、 XOOPS_GROUP_ADMINに属しているユーザを指します。
モジュールロール
カレントユーザがモジュールにアクセスしたとき、Legacyはgrouppermハンドラーでカレントユーザのパーミッション情報を呼び出します。ここで呼び出された情報はロールに変換されます。つまり、Legacyがカレントモジュールだけにたいして、そのモジュールのロール情報を自動的に設定してくれるのです。
Module.{dirname}.Visitor
このロールは'module_read'権限を持っているグループに属するユーザに付与されます。
Module.{dirname}.Admin
このロールは'module_admin'権限を持っているグループに所属するユーザに付与されます。同時、このユーザは'Site.Administrator'ロールも持つことになります。
Module.{dirname}.{any}
要追記....
