CakePHP 1.2: как заблокировать данный контроллер от доступа кого-либо кроме администраторов? - PullRequest
2 голосов
/ 07 ноября 2008

Я не ищу всю реализацию ACO-ARO ... Я просто хочу использовать Auth и проверить роль пользователя ....

Что мне поставить куда, чтобы просто отказать пользователям в данном контроллере, если у них нет определенной роли.

Я пытаюсь использовать $ this-> Auth-> authorize = 'controller'; ... но я даже не знаю, где это поставить ??

Любая помощь будет потрясающей!

Заранее спасибо.

1 Ответ

1 голос
/ 11 ноября 2008

Короткий ответ r: Похоже, вам нужно создать и app_controller.php и поместить ваш код в метод beforeFilter.

Более длинный ответ: Создайте файл app_controller.php в каталоге приложения и вставьте следующий код в beforeFilter().

if (isset($this->params[Configure::read('Routing.admin')])) { //User is trying to access a page using the admin route
    if ($this->Session->check('someSessionVariable')) { //Check user has some session variable set.                 
        // User is accessing an admin page and has permission, do something, or in most cases do nothing.
     } else { //No sessions set for user, redirect to login page.           
        $this->redirect('/yourLoginPage'); //Redirect
    }
}

Это не замена для надлежащего пользователя компонента Auth, но оно должно делать то, что вам нужно. Убедитесь, что вы проверили его безопасность, прежде чем запускать его в производство.

...