Нужна совершенная система контроля доступа на основе ролей в Django и DRF

Это будет длинное сообщение. Спасибо, что прочитали это.

В Django уже есть роли, группы, разрешения. Что хорошо для простых вещей.

В моем случае это будет пользователь CEO, чью учетную запись мы создадим с помощью команды суперпользователя. А затем этот генеральный директор добавит новых пользователей через интерфейс React front end UI, так что будут все API для создания новых пользователей, предоставления им отделов и назначений.

Итак, теперь каждый новый созданный пользователь будет получать электронное письмо с сгенерированным системой паролем и ссылкой для его изменения на что-либо, мы не позволим пользователю войти в систему, пока он не сменит сгенерированный системой пароль. Мы уже разобрались с этим.

Теперь в обозначениях будут указаны менеджеры и их помощники. У помощника будет доступ только к просмотру того, что создано его менеджерами, а не ко всему. Таким образом, ассистент будет иметь доступ к просмотру нескольких моделей, но не к полному доступу к просмотру каждого отдельного объекта в модели, он будет иметь доступ к просмотру нескольких объектов, созданных его менеджером. Генеральный директор будет иметь доступ ко всему.

Теперь, когда генеральный директор будет находиться вне офиса в командировке, он может назначить дополнительные права любому менеджеру, и тогда, помимо своего собственного просмотра, они смогут просматривать и все остальное.

Теперь администратор должен иметь возможность назначать разрешения для каждого обозначения.

Кроме того, просмотр будет основан не только на простой модели, но и на других вещах. Например, теперь рассмотрим, что есть определенные задачи. У задач есть определенный срок, ассистент и менеджеры могут попросить о продлении.

Итак, если ассистент запрашивает продление, и если оно составляет менее 3 дней, то запрос будет отправлен менеджеру. Но если он запрашивает более 3 дней, то запрос будет отправлен генеральному директору. Если менеджер запрашивает продление, и если оно составляет менее 3 дней, то оно будет автоматически одобрено, но если больше, то администратор получит запрос.

Существует около 80 конечных точек (API). Нужно ли мне будет писать условие if else для проверки обозначения в каждом представлении и на основе этого создавать набор запросов или есть какой-нибудь короткий способ.

Кроме того, генеральный директор должен иметь возможность в любой момент изменить разрешения.

В моем случае я знаю. Генеральный директор = Администратор, Назначение = роль = Группы. Разрешения = Permissions.

Как можно создать такую надежную систему, как эта? Есть ли какое-нибудь руководство, библиотека или пакет для этого? Надеюсь, я смогу ясно выразиться.

Если это не связано с RBAC, то дайте мне знать, как именно называется эта штука.

Это пример скриншота того, как именно я хочу, чтобы окно назначения разрешений выглядело во внешнем интерфейсе.

https://imgur.com/a/5UL3sUM

Разрешения также могут быть назначены обозначениям / пользователю. Мы не хотим обрабатывать эти вещи вручную через панель администратора Django. У нее должна быть собственная панель в пользовательском интерфейсе React.

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