доброго времени суток всем, в отношении компонента auth. Я делаю несколько тестов, чтобы лучше понять инструмент, в целях проверки концепции я хочу, чтобы аутентифицированный пользователь-администратор был авторизован для доступа к любому действию, но если у авторизованного пользователя есть «supervisor» Роль только в индекс действия, просматривать и редактировать в «RequestsController.php», я пытаюсь этот подход:
1) разрешить все для роли администратора и запретить все для кого-либо еще в AppController.php.
2) Разрешить явно «супервизор» в «RequestsController.php» и запретить любую другую роль.
Сомнение состоит в том, что после некоторых тестов происходит то, что, если я авторизую пользователя-администратора только в AppController.php, перенаправления позволяют мне только перейти в / webroot /, но если я разрешаю роль администратора в RequestsController.php. Я могу видеть запросы без проблем
Метод IsAuthorize в AppController
public function isAuthorized($user)
{
//privileges 1 means admin
if ($user['privileges']==1){
debug($user);
return true;
} else {
debug($user);
return false;
}
}
Метод IsAuthorize в контроллере запросов
public function isAuthorized($user)
{
//privileges 9 means supervisor
if ($user['privileges']==9){
debug($user);
$action = $this->request->getParam('action');
if (in_array($action, ['index', 'view', 'edit'])) {
debug($user);
return true;
}
return false;
} else {
debug($user);
return false;
}
}
Поскольку мне непонятно, в каком порядке обрабатывается функция isAuthorized или почему происходит перенаправление на запрос (даже если это "AppController.php" или "RequestsController.php"), поэтому я думаю, что Придется в explicity авторизовать роль администратора во всех контроллерах