Всем привет, подскажите по AccessControl rules . В actions мы

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

Например для действия candidate надо правило это
'rules' => [
[
'allow' => true,
'actions' => ['candidate'],
'matchCallback' => function ($rule, $action) {
return User::canCurrentRole($rule->roles);
},
'roles' => [
User::ROLE_ADMIN,
User::ROLE_HR_HEAD,
User::ROLE_HR_SPECIALIST,
User::ROLE_INSTITUTE_OPERATOR,
User::ROLE_DEPARTMENT_SECRETARY,
User::ROLE_DEPARTMENT_HEAD,
]
],

а для остальных это
[
'allow' => true,
'matchCallback' => function ($rule, $action) {
return User::canCurrentRole($rule->roles);
},
'roles' => [
User::ROLE_ADMIN,
User::ROLE_HR_HEAD,
User::ROLE_HR_SPECIALIST,
User::ROLE_UF_HEAD,
User::ROLE_VUS_EMPLOYEE,
User::ROLE_DEPARTMENT_HEAD,
]
],
],

12 ответов

24 просмотра

Allow = false

Станислав-Руденко Автор вопроса
Xeon Null
Allow = false

Это полностью закрывает доступ, а мне надо разделить для одного действия так, а для всех остальных этак

используй only https://www.yiiframework.com/doc/guide/2.0/ru/security-authorization#filtry-kontrola-dostupa

Станислав-Руденко Автор вопроса
Станислав-Руденко Автор вопроса
Станислав-Руденко Автор вопроса
Станислав Руденко
надо для всех, кроме

правила идут сверху вниз по индексу, если сначала приписать для определенных actions, а за тем без указания то это и будет по умолчанию

Станислав-Руденко Автор вопроса
Михаил Глазков
правила идут сверху вниз по индексу, если сначала ...

По логике вещей да, но по факту это не работает [ 'allow' => true, 'actions' => [], ], [ 'allow' => true, 'actions' => ['candidate'], ], ни так [ 'allow' => true, 'actions' => [], ], [ 'allow' => true, 'actions' => ['candidate'], ], для всех роутов срабатывает 'actions' => [],. Ну то есть, получается не важна последовательность, если в массиве правил есть перекрывающее (приоритетное) то оно поглощает менее приоритетное

Станислав Руденко
По логике вещей да, но по факту это не работает [...

'actions' => null или вообще без указания должно идти последним

Станислав-Руденко Автор вопроса
Михаил Глазков
'actions' => null или вообще без указания должно и...

[ 'allow' => true, 'actions' => ['candidate'], 'roles' => [ User::ROLE_ADMIN, User::ROLE_HR_HEAD, ] ], [ 'allow' => true, 'actions' => null, 'roles' => [ User::ROLE_ADMIN, User::ROLE_VUS_EMPLOYEE, ] ], авторизуюсь под User::ROLE_VUS_EMPLOYEE, работает и candidate и все остальные а должно работать все кроме candidate

Станислав Руденко
[ 'allow' => true, ...

я тебе выше уже пример с документации приводил https://www.yiiframework.com/doc/guide/2.0/ru/security-authorization#filtry-kontrola-dostupa попробуй only, Я не думаю что у тебя в контроллере 100500 экшенов и трудно их указать

Похожие вопросы

Обсуждают сегодня

Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Ребят, а больше никто поработать не хочет? Кто свободен?
AIZ
4
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Карта сайта