Работаю с RBAC в Yii2.
Существует иерархия юзеров сайта.
Если совсем грубо пользователь -> редактор -> админ
То-есть редактор наследует права пользователя, а админ наследует права редактора.
Мне нужно сделать, например, условие что наш юзер является именно редактором, не админом.
Как сделано сейчас:
Yii::$app->user->can('редактор') && !Yii::$app->user->can('админ')
Можно как-нибудь сделать одной командой, вроде Yii::$app->user->is('редактор')
или что-то подобное?
Таким же вопросом недавно задался. Единственное что я смог придумать это написал статичный класс хелпер с методом:
public static function currentUserRoleIs($name) {
$userRole = current(ArrayHelper::getColumn(Yii::$app->authManager->getRolesByUser(Yii::$app->user->id), 'name'));
return $name == $userRole;
}
Костыль наверное, но лучшего способа я не нашел...
Вероятно нарушена архитектура ролей, если возникает такая сложность. Админу не обязательно наследовать роль редактора, можно просто для админа добавить такие же пермишены, как у редактора. Админ, все таки отдельная и самостоятельная роль, которая не должна зависеть от других ролей. Я бы сделал что-то подобное:
Проверятор - Модератор - Администратор
Вычитыватель - Редактор - Журналист
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть скрипт, который находит все картинки в папке и выводит ихТолько получается на локальном хостинге выводит как надо (все картинки пронумерованы,...
Надо найти находится ли объект в поле зренияДля этого можно его вписать в сферу и остаётся только узнать видна ли сфера