Как мне защитить все действия администратора во всех контроллерах в CakePHP


Я разрабатываю приложение с использованием CakePHP v 1.3 в Windows (XAMPP).

Большинство контроллеров работают с включенной маршрутизацией администратора. Я хочу защитить действия администратора каждого контроллера с помощью страницы входа в систему. Как я могу сделать это, не повторяя много раз?

Одно из решений проблемы заключается в том, что "я проверяю информацию для входа в действие admin_index каждого контроллера", а затем соответствующим образом показываю экран входа.
Есть ли лучший способ сделать это ?

URL-адрес для удаления для администратора (http://localhost/app/admin ) указывает на действие index_admin контроллера пользователей (для этого создан новый маршрут в routes.php файл)

Author: Vadim Kotov, 2010-05-17

1 answers

Используйте компонент аутентификации . Вы можете настроить его только для административных маршрутов примерно так:

// AppController::beforeFilter
function beforeFilter() {
    if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
        $this->Auth->deny('*');
        ...
    }
}

Проверять только действия index бессмысленно, это просто неясность, а не безопасность. Компонент AUTH будет проверять разрешения для каждой загрузки отдельной страницы.

 6
Author: deceze, 2010-05-17 07:32:07