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

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

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

Сообщение MaratCrash » 2017.09.10, 15:46

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

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

Второй вариант. Модель User не ссылается на другие модели, а вот Customer и Administrator ссылаются на User. Это мне нравится больше. Но в таком случае ID Customer и Administrator могут совпадать и проверке прав не получится.

Аватара пользователя
samdark
Администратор
Сообщения: 8585
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark » 2017.09.11, 01:07

RBAC работает с Identity и ему всё равно, какой именно это Identity, лишь бы ID был уникален.

Аватара пользователя
samdark
Администратор
Сообщения: 8585
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark » 2017.09.11, 01:08

Если у вас PostgreSQL, сделайте общий Sequence для этих двух типов юзеров.

MaratCrash
Сообщения: 199
Зарегистрирован: 2011.03.02, 21:11

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

Сообщение MaratCrash » 2017.09.11, 12:29

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

Аватара пользователя
Йож
Сообщения: 504
Зарегистрирован: 2015.08.26, 03:05

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

Сообщение Йож » 2017.09.16, 19:31

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

Ответить