Как реализовать RBAC в Django? [закрыто]

У меня есть такой сценарий для программной системы: В компании есть много команд. Люди принадлежат к разным командам и имеют разные роли в каждой команде, к которой они принадлежат. Документы хранятся на сервере, и у них есть веб-интерфейс для редактирования этих файлов через Интернет. Очевидно, что мы хотим, чтобы у людей были только разрешения на определенный доступ (основанный на их роли в конкретной команде) к файлам их команды. В качестве примера рассмотрим Мэри. Мэри принадлежит к трем командам в этой компании, а именно 'ABC', 'DEF', 'GHI'. Мэри является администратором в 'ABC', скрам-мастером в 'DEF' и простым разработчиком в 'GHI'. Теперь Мэри должна уметь:

  • делать все, что она хочет в команде 'ABC'
  • просматривать документы, относящиеся к команде 'DEF'
  • редактировать документы, относящиеся к команде 'GHI'

Итак, я надеюсь, что вы поняли сценарий. Вопрос заключается в том, что, очевидно, стандартное приложение auth (с его настройками по умолчанию), предоставляемое Django, не так уж полезно для реализации этого сценария, однако я могу внести некоторые изменения, чтобы как-то обойти проблему. Я могу создать группы Django следующим образом:

  • ABC_admin
  • ABC_scrummaster
  • ABC_developers

И так далее. То есть я создаю объект Django group для каждой роли в команде. Есть ли лучшие способы, рекомендуемые сообществом django? Я много искал, но RBAC, упомянутые в других сценариях, как-то отличаются от моего. И, конечно, я хочу получить решение, которое идеально подходит для моего сценария.

Вернуться на верх