모든 사용자가 로그인해야하는 애플리케이션이 있습니다. 인증을 위해 Auth
구성 요소를 사용하고 인증을 위해 ACL
을 사용하고 있습니다.로그인하지 않은 경우 cakePHP ACL
:
이if(!$this->Acl->check(array('model' => 'User', 'foreign_key' => $this->Auth->user()['id']), 'Admin', 'read'))
{
pr('You are NOT allowed to be here!');
}
이 로그인 한 사용자 모든 잘 작동, 일부 사용자는 관리자 페이지를 볼 수 있습니다, 일부는 할 수 없습니다 . 내가 /관리자에 갈 때 로그인하지 않은 경우에는
는, 내가 얻을 :
AclNode :: 노드() - 나오지 않았어 '을 t " 배열 ([Aro0로 식별 아로 노드를 찾을 수 있습니다. 모델] = > 모델 [Aro0.foreign_key] = > U) "
(는 'U'를 인쇄 이유를 모르겠다). 그것은 조회를하려고하는 것 같지만 사용자 정보가 없기 때문에 충돌합니다. 나는 여기서 뭔가를 놓치고 있다고 확신한다. 사용자가 로그인하면 내가 확인하여 문제를 방지 할 수 있습니다 :
if($this->Auth->user()) //do the ACL check
하지만 그 접근 방식 좋아하지 않아, 나는 그것이 잘못된 것 같아요.
기본 설정이 필요합니까?
답변 해 주셔서 감사합니다. 나는 ACL에 익숙하지 않은데 문서가 지저분합니다. 내가 로그인 한 사용자 일 때 나는 작동하지 않기 때문에 왜 나는 acos가 없는지 이해하지 못합니다. 또한 foreign_key가 잘못된 이유는 무엇입니까? 그것은 로그인 한 사용자를 가리 킵니다. – joakimdahlstrom