RBAC пользователи и компании

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
mutogen
Сообщения: 52
Зарегистрирован: 2013.10.16, 15:39

RBAC пользователи и компании

Сообщение mutogen »

Всем привет.
В одном из проектов столкнулся с таким вопросом.

Есть довольно стандартный RBAC с 4-5 ролями. Как обычно есть некоторое распределение кто чего может смотреть, редактировать и т.д.
Но встала задача наложить некое подобие динамических прав (устанавливаемых админом) на компании к которым принадлежат пользователи. Например, может ли та или иная компания пользоваться той или иной услугой и в зависимости от этого меняются возможности для всех пользователей этой компании (к примеру, они не видят некоторых функциональных кнопок или блоков)

Как в этом случае лучше назначать права на компании? Давать их в стандартном RBAC значит получить путаницу, т.к. там уже "сидят" все пользователи. Писать свой велосипед как вариант, но возможно есть более верное решение. Мне видится некоторый двухслойный RBAC, т.е. сначала проверяется компания там где нужно, затем конечный пользователь.
wolandino
Сообщения: 103
Зарегистрирован: 2011.02.02, 20:03

Re: RBAC пользователи и компании

Сообщение wolandino »

Мне видится некоторый двухслойный RBAC, т.е. сначала проверяется компания там где нужно, затем конечный пользователь.
Мне тоже кажется это разумно. То есть у конечного пользователя компаний привилегий в итоге не может быть больше, чем у компании. То есть в итоге получается этакое наследование прав компании для пользователя с возможностью перегрузки прав в сторону уменьшения.
Аватара пользователя
mutogen
Сообщения: 52
Зарегистрирован: 2013.10.16, 15:39

Re: RBAC пользователи и компании

Сообщение mutogen »

wolandino писал(а):
Мне видится некоторый двухслойный RBAC, т.е. сначала проверяется компания там где нужно, затем конечный пользователь.
Мне тоже кажется это разумно. То есть у конечного пользователя компаний привилегий в итоге не может быть больше, чем у компании. То есть в итоге получается этакое наследование прав компании для пользователя с возможностью перегрузки прав в сторону уменьшения.
Да, звучит это вполне неплохо, но вот есть ли способы настроить такое не выстраивая свой велосипед ;)
Сейчас это реализовано примерно так: на каждую услугу для компании отводится поле в бд со значениями 0 или 1, в зависимости от этого строится через компонент набор услуг доступных текущей компании. Услуги тоже в свою очередь классы имплементирующие некий базовый интерфейс для всех сервисов (у всех есть check метод).
В общем говорю, велосипед :)
wolandino
Сообщения: 103
Зарегистрирован: 2011.02.02, 20:03

Re: RBAC пользователи и компании

Сообщение wolandino »

А как тут без велосипеды. Это же надстройка над надстройкой.
А компании у вас как что выглядят? Что это за сущность? Тоже вроде пользователя?
Ответить