Подключен RBAC из коробки.
Есть меню где скрываются пункты:
Код: Выделить всё
if (Yii::$app->user->can('user_log.list')) {
...
Код: Выделить всё
if (!Yii::$app->user->can('user.administration')) {
....
Код: Выделить всё
SELECT * FROM `auth_assignment` WHERE `user_id`='1'
SELECT * FROM `auth_item` WHERE `name`='user.administration'
SELECT `parent` FROM `auth_item_child` WHERE `child`='user.administration'
SELECT * FROM `auth_item` WHERE `name`='admin'
SELECT * FROM `auth_item` WHERE `name`='user_log.list'
SELECT `parent` FROM `auth_item_child` WHERE `child`='user_log.list'
SELECT * FROM `auth_item` WHERE `name`='admin'
Возможно имеет смысл создать Service что бы в нём хранить в массиве данные для роли admin из auth_item_child
повесить событие загрузку $app и не бегать в БД?
И проверять AuthService->can('user.administration');
Или как это решается в rbac? Когда нужно проверять права в нескольких места шаблона?