Как мне защитить все действия администратора во всех контроллерах в CakePHP
Я разрабатываю приложение с использованием CakePHP v 1.3 в Windows (XAMPP).
Большинство контроллеров работают с включенной маршрутизацией администратора. Я хочу защитить действия администратора каждого контроллера с помощью страницы входа в систему. Как я могу сделать это, не повторяя много раз?
Одно из решений проблемы заключается в том, что "я проверяю информацию для входа в действие admin_index каждого контроллера", а затем соответствующим образом показываю экран входа.
Есть ли лучший способ сделать это ?
URL-адрес для удаления для администратора (http://localhost/app/admin ) указывает на действие index_admin контроллера пользователей (для этого создан новый маршрут в routes.php файл)
1 answers
Используйте компонент аутентификации . Вы можете настроить его только для административных маршрутов примерно так:
// AppController::beforeFilter
function beforeFilter() {
if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
$this->Auth->deny('*');
...
}
}
Проверять только действия index
бессмысленно, это просто неясность, а не безопасность. Компонент AUTH будет проверять разрешения для каждой загрузки отдельной страницы.