Страница 1 из 1

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

Добавлено: 2016.06.15, 09:45
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' => ['@'],
          ],
        ]
      ],
    ];
  }

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

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

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

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

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

Добавлено: 2016.06.15, 10:42
maleks
jakiro писал(а):или я могу двум разным ролям дать свой набор действий и это никак пересекаться не будет?
можешь