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

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

Добавлено: 2017.08.08, 22:20
alex2017
Привет! Возник очень странный вопрос.

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

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

Спасибо

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

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

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

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

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

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

А есть какой нибудь пример? хоть где нибудь? а то я чет не найду. Спасибо

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

Добавлено: 2017.08.09, 21:34
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);

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

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

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

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

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

$auth->assign('some_permission', 1);

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

Добавлено: 2017.08.10, 10:39
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 это одно и то же.

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

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

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

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