Я хотел бы авторизовать пользователей на основе нескольких ролей. Все посетители должны иметь возможность дойти до показа метода. Поэтому я написал в AppController:Авторизовать пользователей на основе ролей в CakePHP 3
public function beforeFilter(Event $event) {
$this->Auth->allow(['show']);
}
Это работает.
В Initialize() метод AppController У меня также:
$this->loadComponent('Auth', [
'authorize' => 'Controller'
]);
Я хотел бы, чтобы зарегистрированные пользователи с ролью «пользователь», чтобы добраться до всех «индекс» и «добавить» методы, так Я написал в AppController:
public function isAuthorized($user) {
if (isset($user['role']) && $user['role'] === 'admin') {
return true;
}
if (isset($user['role']) && $user['role'] === 'user') {
$this->Auth->allow(['index', 'logout', 'add']);
}
return false;
}
Администратор может достигать всех методов, как ожидалось. Пользователь, зарегистрированный с ролью «пользователь», не может достичь метода «индекс» или «добавить». Как я могу это исправить?
Эй, я до сих пор не могу голосовать, но ваш ответ мне очень помог. Спасибо! – nexequ