認証コンポーネントの使用
組み込みのAuthComponentを使用すると、CakePHP は現在ログインしているユーザーの詳細をセッション内に保存します。
現在ログインしているユーザーのプロパティを取得する
ログインすると、AuthComponent を介して Used (role_id など) の情報にアクセスできます。これはどこでも実行できます(必要に応じて、ビューまたはモデル内でも)。
例えば;
if (123 === AuthComponent::user('role_id')) {
debug('hello admin user');
}
または、コントローラー内:
if (123 === $this->Auth->user('role_id')) {
debug('hello admin user');
}
ログインユーザーへのアクセス
ただし、どこでも group-id を繰り返す必要がないようにするには、このためのメソッドを作成することをお勧めします (たとえば、AppController 内)。
/**
* Checks if the currently logged in user is an admin
*
* @return bool true if the current user is an admin
*/
protected function isAdmin()
{
// probably best to make the id configurable (Configure::write())?
return (123 === $this->Auth->user('role_id'));
}
アクセス制御
「単純な」承認を使用するisAuthorized()
には、現在ログインしているユーザーのプロパティに基づいて、特定のアクションへのアクセスをブロックできるように、コントローラーで独自のアクションを作成できます。
ControllerAuthorize の使用