Rbac разрешения для пользователей.

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Закрыто
alex2017
Сообщения: 12
Зарегистрирован: 2017.08.08, 21:39

Rbac разрешения для пользователей.

Сообщение alex2017 »

Привет! Возник очень странный вопрос.

Есть ли возможность реализовать при помощи RBAC передачу разрешения именно пользователю а не роли?

Если нет, то лучше тогда воспользоваться ABAC и писать все ручками?

Спасибо
Maksat1991
Сообщения: 57
Зарегистрирован: 2016.10.16, 00:15

Re: Rbac разрешения для пользователей.

Сообщение Maksat1991 »

Можно назначить право (permission) напрямую юзеру.

А можно между правом и юзером поставить роль.
Тогда у роли будут права.
А у юзера будут эти роли.
Получится одно и то же, как если бы юзеру Вы дали все права, которые есть у этих ролей. Но через роли удобнее
alex2017
Сообщения: 12
Зарегистрирован: 2017.08.08, 21:39

Re: Rbac разрешения для пользователей.

Сообщение alex2017 »

Maksat1991 писал(а): 2017.08.09, 09:32 Можно назначить право (permission) напрямую юзеру.

А можно между правом и юзером поставить роль.
Тогда у роли будут права.
А у юзера будут эти роли.
Получится одно и то же, как если бы юзеру Вы дали все права, которые есть у этих ролей. Но через роли удобнее
С кайфом.

А есть какой нибудь пример? хоть где нибудь? а то я чет не найду. Спасибо
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Rbac разрешения для пользователей.

Сообщение zelenin »

alex2017 писал(а): 2017.08.09, 21:07А есть какой нибудь пример? хоть где нибудь? а то я чет не найду. Спасибо
в официальной доке, в разделе, который называется Assigning roles to users (то есть прямо как ваш вопрос)
https://github.com/yiisoft/yii2/blob/ma ... s-to-users

или в любом примере кода оттуда же

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

  // Assign roles to users. 1 and 2 are IDs returned by IdentityInterface::getId()
        // usually implemented in your User model.
        $auth->assign($author, 2);
        $auth->assign($admin, 1);
alex2017
Сообщения: 12
Зарегистрирован: 2017.08.08, 21:39

Re: Rbac разрешения для пользователей.

Сообщение alex2017 »

zelenin писал(а): 2017.08.09, 21:34 в официальной доке, в разделе, который называется Assigning roles to users (то есть прямо как ваш вопрос)
https://github.com/yiisoft/yii2/blob/ma ... s-to-users
как назначить роль->пользователю это я знаю. Спасибо. Но! как назначить право (permission) именно пользователю. Конкретному не всей роли, а одному пользователю. Есть какие нибудь примеры?
Спасибо
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Rbac разрешения для пользователей.

Сообщение maleks »

alex2017 писал(а): 2017.08.10, 10:20 как назначить роль->пользователю это я знаю. Спасибо. Но! как назначить право (permission) именно пользователю. Конкретному не всей роли, а одному пользователю. Есть какие нибудь примеры?
Спасибо
Архитектура вроде не запрещает передать вместо имени роли имя разрешения:

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

$auth->assign('some_permission', 1);
Yii2 universal module sceleton - for basic and advanced templates
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Rbac разрешения для пользователей.

Сообщение zelenin »

alex2017 писал(а): 2017.08.10, 10:20
zelenin писал(а): 2017.08.09, 21:34 в официальной доке, в разделе, который называется Assigning roles to users (то есть прямо как ваш вопрос)
https://github.com/yiisoft/yii2/blob/ma ... s-to-users
как назначить роль->пользователю это я знаю. Спасибо. Но! как назначить право (permission) именно пользователю. Конкретному не всей роли, а одному пользователю. Есть какие нибудь примеры?
Спасибо
роль и разрешение отличаются только семантически. Для реализации rbac в yii это одно и то же.
alex2017
Сообщения: 12
Зарегистрирован: 2017.08.08, 21:39

Re: Rbac разрешения для пользователей.

Сообщение alex2017 »

maleks писал(а): 2017.08.10, 10:34 Архитектура вроде не запрещает передать вместо имени роли имя разрешения:

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

$auth->assign('some_permission', 1);
Каеф!
Спасибо большое)))
Закрыто