Проектирование сущностей и RBAC

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
MaratCrash
Сообщения: 200
Зарегистрирован: 2011.03.02, 21:11

Проектирование сущностей и RBAC

Сообщение MaratCrash »

Всем привет.
Ситуация. Имеются сущности Клиент и Администратор.
У этих сущностей разные свойства. Да, есть общие - логин, email, пароль. Но все остальное разнится сильно.
Как вы в таких случаях применяете RBAC в Yii2 проектах?

Как вариант, можно сделать так:
Модель User с ссылками на Customer и Administrator. А при проверке прав передавать как раз ID модели User. но в плане проектирование это не совсем верно.

Второй вариант. Модель User не ссылается на другие модели, а вот Customer и Administrator ссылаются на User. Это мне нравится больше. Но в таком случае ID Customer и Administrator могут совпадать и проверке прав не получится.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Проектирование сущностей и RBAC

Сообщение samdark »

RBAC работает с Identity и ему всё равно, какой именно это Identity, лишь бы ID был уникален.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Проектирование сущностей и RBAC

Сообщение samdark »

Если у вас PostgreSQL, сделайте общий Sequence для этих двух типов юзеров.
MaratCrash
Сообщения: 200
Зарегистрирован: 2011.03.02, 21:11

Re: Проектирование сущностей и RBAC

Сообщение MaratCrash »

samdark писал(а): 2017.09.11, 01:07 RBAC работает с Identity и ему всё равно, какой именно это Identity, лишь бы ID был уникален.
А вот насколько это верным будет? Ведь в таком случае, выходит, что мы предоставление доступов для разных сущностей мешаем в одну таблицу. К тому же, у меня планируется управление RBAC на морде в интерфейсе менеджера.
Хотя, никто мне не запрещает в табличку добавить поле с типом сущности для более гибкого управления.
Аватара пользователя
Йож
Сообщения: 574
Зарегистрирован: 2015.08.26, 03:05

Re: Проектирование сущностей и RBAC

Сообщение Йож »

MaratCrash писал(а): 2017.09.11, 12:29Ведь в таком случае, выходит, что мы предоставление доступов для разных сущностей мешаем в одну таблицу.
Там только user ID используется..
https://github.com/yiisoft/yii2/blob/ma ... it.php#L94
Ответить