Я использую код прямо из руководства по кохане для защиты веб-сайтов на основе учетных данных для входа
Проблема в том, что код, кажется, только проверяет, вошел ли пользователь в систему и не различает ли его роль.
Как бы я изменил этот скрипт, чтобы только администратор мог получить доступ к этому действию
В базовом контроллере у меня есть код
public $assert_auth = FALSE;
public $assert_auth_actions = FALSE;
public function before()
{
parent::before();
$this->_user_auth();
}
protected function _user_auth()
{
$action_name = Request::instance()->action;
if (($this->assert_auth !== FALSE && Auth::instance()->logged_in($this->assert_auth) === FALSE)
|| (is_array($this->assert_auth_actions) && array_key_exists($action_name, $this->assert_auth_actions)
&& Auth::instance()->logged_in($this->assert_auth_actions[$action_name]) === FALSE))
{
if (Auth::instance()->logged_in())
{
Request::instance()
->redirect('');
}
else
{
Request::instance()
->redirect('admin/login');
}
}
в контроллерах для страниц админки есть код
public $assert_auth_actions = array(
'index' => array('login')
);