我对isAuthorized()
有一个非常特殊的问题。以下是AppController
中的函数:
public function isAuthorized () {
if ($this->Auth->user('role') == USR_ADMIN) {
return true;
}
return false;
}
基本上,管理员可以访问所有内容。这工作正常,直到使用管理前缀路由。访问UsersController::admin_view()
时,我收到“未经授权”的消息。
首先,我认为该函数不会返回true。所以我测试了它:
public function isAuthorized() {
if ($this->Auth->user('role') == USR_ADMIN) {
printf ("returns true"); exit;
return true;
}
}
所以现在我知道函数实际上返回true,但我仍然得到“Unauthorized”错误。可能导致这种情况的原因是什么?
谢谢。
答案 0 :(得分:1)
我解决了“问题”。
public function isAuthorized () {
if (in_array($this->action, $this->userAllowed)) {
return true;
}
parent::isAuthorized ();
}
父:: isAuthorized()是问题,因为我没有返回它。一个简单的return parent::isAuthorized()
解决了这个问题。
愚蠢,我知道,但这件事让我困惑了几个小时。