cakephp isAuthorized()无法正常工作

时间:2011-12-19 22:04:55

标签: cakephp cakephp-1.3

我对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”错误。可能导致这种情况的原因是什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

我解决了“问题”。

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

    parent::isAuthorized ();
}

父:: isAuthorized()是问题,因为我没有返回它。一个简单的return parent::isAuthorized()解决了这个问题。

愚蠢,我知道,但这件事让我困惑了几个小时。