Всем привет.
В одном из проектов столкнулся с таким вопросом.
Есть довольно стандартный RBAC с 4-5 ролями. Как обычно есть некоторое распределение кто чего может смотреть, редактировать и т.д.
Но встала задача наложить некое подобие динамических прав (устанавливаемых админом) на компании к которым принадлежат пользователи. Например, может ли та или иная компания пользоваться той или иной услугой и в зависимости от этого меняются возможности для всех пользователей этой компании (к примеру, они не видят некоторых функциональных кнопок или блоков)
Как в этом случае лучше назначать права на компании? Давать их в стандартном RBAC значит получить путаницу, т.к. там уже "сидят" все пользователи. Писать свой велосипед как вариант, но возможно есть более верное решение. Мне видится некоторый двухслойный RBAC, т.е. сначала проверяется компания там где нужно, затем конечный пользователь.
RBAC пользователи и компании
Re: RBAC пользователи и компании
Мне тоже кажется это разумно. То есть у конечного пользователя компаний привилегий в итоге не может быть больше, чем у компании. То есть в итоге получается этакое наследование прав компании для пользователя с возможностью перегрузки прав в сторону уменьшения.Мне видится некоторый двухслойный RBAC, т.е. сначала проверяется компания там где нужно, затем конечный пользователь.
Re: RBAC пользователи и компании
Да, звучит это вполне неплохо, но вот есть ли способы настроить такое не выстраивая свой велосипедwolandino писал(а):Мне тоже кажется это разумно. То есть у конечного пользователя компаний привилегий в итоге не может быть больше, чем у компании. То есть в итоге получается этакое наследование прав компании для пользователя с возможностью перегрузки прав в сторону уменьшения.Мне видится некоторый двухслойный RBAC, т.е. сначала проверяется компания там где нужно, затем конечный пользователь.
Сейчас это реализовано примерно так: на каждую услугу для компании отводится поле в бд со значениями 0 или 1, в зависимости от этого строится через компонент набор услуг доступных текущей компании. Услуги тоже в свою очередь классы имплементирующие некий базовый интерфейс для всех сервисов (у всех есть check метод).
В общем говорю, велосипед
Re: RBAC пользователи и компании
А как тут без велосипеды. Это же надстройка над надстройкой.
А компании у вас как что выглядят? Что это за сущность? Тоже вроде пользователя?
А компании у вас как что выглядят? Что это за сущность? Тоже вроде пользователя?