cakephp isAuthorized () не работает должным образом - PullRequest
1 голос
/ 20 декабря 2011

У меня очень специфическая проблема с 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, но я все еще получаю ошибку «Несанкционированный». Что может быть причиной этого?

Спасибо.

1 Ответ

1 голос
/ 20 декабря 2011

Я решил «проблему».

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

    parent::isAuthorized ();
}

Родитель :: isAuthorized () был проблемой, потому что я не возвращал ее.Простой return parent::isAuthorized() исправил проблему.

Глупо, я знаю, но эта штука меня озадачила часами.

...