Как реализовать RBAC в Django? [закрыто]
У меня есть такой сценарий для программной системы: В компании есть много команд. Люди принадлежат к разным командам и имеют разные роли в каждой команде, к которой они принадлежат. Документы хранятся на сервере, и у них есть веб-интерфейс для редактирования этих файлов через Интернет. Очевидно, что мы хотим, чтобы у людей были только разрешения на определенный доступ (основанный на их роли в конкретной команде) к файлам их команды. В качестве примера рассмотрим Мэри. Мэри принадлежит к трем командам в этой компании, а именно 'ABC', 'DEF', 'GHI'. Мэри является администратором в 'ABC', скрам-мастером в 'DEF' и простым разработчиком в 'GHI'. Теперь Мэри должна уметь:
- делать все, что она хочет в команде 'ABC'
- просматривать документы, относящиеся к команде 'DEF'
- редактировать документы, относящиеся к команде 'GHI'
Итак, я надеюсь, что вы поняли сценарий. Вопрос заключается в том, что, очевидно, стандартное приложение auth (с его настройками по умолчанию), предоставляемое Django, не так уж полезно для реализации этого сценария, однако я могу внести некоторые изменения, чтобы как-то обойти проблему. Я могу создать группы Django следующим образом:
- ABC_admin
- ABC_scrummaster
- ABC_developers
И так далее. То есть я создаю объект Django group для каждой роли в команде. Есть ли лучшие способы, рекомендуемые сообществом django? Я много искал, но RBAC, упомянутые в других сценариях, как-то отличаются от моего. И, конечно, я хочу получить решение, которое идеально подходит для моего сценария.