странный тортPHP isAuthorized () проблема - PullRequest
1 голос
/ 02 марта 2012

Я использую функциюakePHP функции cakePHP, чтобы проверить, авторизован ли пользователь для выполнения действия контроллера, но странная проблема, с которой я столкнулся, заключается в том, что разрешения на другие мои действия контроллера также заблокированы пользователем. Я только делаю это:

function isAuthorized()
{
    $user_id_logged_in = $this->Auth->user('id');

    switch($this->action)
    {
        case: 'my_action':

        if($user_id_logged_in)
        {
             // check if user has access to execute controller action
             return $this->Acl->check(array(
                                'model' => 'MyModel', 'foreign_key' => $my_foreign_key), 
                                'controllers/MyController/'.$this->action);
        }
        else
        {
             return false;
        }

        break;
    }
}

Я хочу проверить, авторизован ли зарегистрированный пользователь для выполнения действия my_action. Но когда я это делаю, пользователь также теряет права на другие действия в моем контроллере. Есть идеи, что с этим не так?

Спасибо

1 Ответ

0 голосов
/ 28 апреля 2012

Я думаю, что проблема в том, что вы не возвращаете никакого значения в конце isAuthorized(), поэтому торт предполагает, что он равен false и, следовательно, запрещает доступ ко всему остальному.

Попробуйте добавить return true; в конце функции, если вы не заинтересованы в авторизации доступа к другим функциям (или, альтернативно, добавьте их в список «разрешить» в Auth).

...