Схема работы RBAC

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Схема работы RBAC

Сообщение jakiro »

Правильно ли я понимаю, что для того, чтобы задействовать RBAC, надо накатить миграции, там 4 таблицы (с назначением ролей)
Получаем, а затем назначаем пользователю роль:

Код: Выделить всё

 $auth = Yii::$app->authManager;
        $authorRole = $auth->getRole('author');
        $auth->assign($authorRole, $user->getId());
В базу я добавляю некие "действия", у которых есть роль, кто это действие может делать
А по ходу работы приложения, мы постоянно проверяем, может ли этот пользователь делать действие

Код: Выделить всё

if (\Yii::$app->user->can('createPost')) {
    // create post
}
Тогда зачем нужен:

Код: Выделить всё

public function behaviors()
  {
    return [
      'access' => [
        'class' => AccessControl::className(),
        'rules' => [
          [
            'allow' => true,
            'roles' => ['@'],
          ],
        ]
      ],
    ];
  }

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Схема работы RBAC

Сообщение zelenin »

это фильтр для экшнов, который имеет несколько различных проверок, в том числе на основе rbac. Вещь параллельная.

jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Re: Схема работы RBAC

Сообщение jakiro »

zelenin писал(а):это фильтр для экшнов, который имеет несколько различных проверок, в том числе на основе rbac. Вещь параллельная.
Я еще увидел child т.е. я так понимаю это "суммирование" ролей, т.е. администратор фактически облрадатель всех действий плюс свои личные. Это исключительно только такая модель или я могу двум разным ролям дать свой набор действий и это никак пересекаться не будет?

Аватара пользователя
maleks
Сообщения: 1863
Зарегистрирован: 2012.12.26, 12:56

Re: Схема работы RBAC

Сообщение maleks »

jakiro писал(а):или я могу двум разным ролям дать свой набор действий и это никак пересекаться не будет?
можешь
Yii2 universal module sceleton - for basic and advanced templates

Ответить