2011-12-19 4 views
1

isAuthorized()과 관련하여 매우 특이한 문제가 있습니다.cakephp isAuthorized()가 제대로 작동하지 않습니다.

public function isAuthorized() { 
    if ($this->Auth->user('role') == USR_ADMIN) { 
     return true; 
    } 
    return false; 
} 

그래서 기본적으로 관리자는 모든에 액세스 할 수 있습니다 여기에 AppController의 기능입니다. 이것은 관리자 접두사 라우팅을 사용할 때까지 정상적으로 작동합니다. UsersController::admin_view()에 액세스 할 때 "Unauthorized"메시지가 표시됩니다.

그래서 먼저 함수가 단순히 true를 반환하지는 않지만. 그래서 나는 그것을 테스트 :

public function isAuthorized() { 
    if ($this->Auth->user('role') == USR_ADMIN) { 
     printf ("returns true"); exit; 
     return true; 
    } 
} 

을 그래서 지금은 함수가 실제로 true를 돌려주는 것을 알고,하지만 난 여전히 "승인되지 않은"오류가 발생합니다. 무엇이 이것을 일으킬 수 있습니까?

감사합니다.

+0

isAuthorized 함수를 사용하여 코드를 보여줘야합니다. – Julien

답변

1

"문제"를 해결했습니다. 나는 그것을 반환되지 않았기 때문에

public function isAuthorized() { 
    if (in_array($this->action, $this->userAllowed)) { 
     return true; 
    } 

    parent::isAuthorized(); 
} 

부모 :: isAuthorized()이 문제였다. 간단한 return parent::isAuthorized()이 문제를 해결했습니다.

어리석은, 나는 알고있다. 그러나이 물건에는 나를 몇 시간 동안 의아하게했다.

+0

'$ uses = array ('User')를 포함시킨 후에도'User' 모델의'isAuthroized()'에서'User :: USER_ADMIN'에 접근 할 수 없습니다.);', 합법적 인 호출입니까, 아니면 모델을 명시 적으로 가져와야합니까? – Ish

관련 문제