すべてのユーザーがログインする必要があるアプリケーションがあります。認証と承認Auth
のためにコンポーネントを使用しています。ACL
私は基本的に、管理コントローラーの `beforeFilter() で次のようなことをしています:
if(!$this->Acl->check(array('model' => 'User', 'foreign_key' => $this->Auth->user()['id']), 'Admin', 'read'))
{
pr('You are NOT allowed to be here!');
}
これは、ログインしているすべてのユーザーに適しています。一部のユーザーは管理ページを表示でき、一部のユーザーは表示できません。
ただし、ログインしていないときに/adminに移動すると、次のようになります。
AclNode::node() - "Array ( [Aro0.model] => model [Aro0.foreign_key] => U ) " で識別される Aro ノードが見つかりませんでした
(なぜ「U」が印刷されるのかわかりません)。ルックアップをしようとしているようですが、ユーザー情報がそこにないため、クラッシュします。私はここで何かが欠けていると確信しています。ユーザーがログインしているかどうかを確認することで、問題を回避できます。
if($this->Auth->user()) //do the ACL check
しかし、私はそのアプローチが好きではなく、間違っていると思います。
ある種のデフォルト設定が必要ですか?