Доступ нескольких пользователей к одной основной учетной записи Django auth

Я уже настроил пользовательскую аутентификацию пользователей для своего проекта, однако я был бы признателен за совет, как реализовать следующее:

Обзор требований:

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

Затем этот же клиент (как администратор учетной записи) сможет добавлять субпользователей к этой учетной записи, а также сможет настраивать разрешения для каждого из этих субпользователей в отношении этой учетной записи.

Мой вопрос:

Я не уверен, как начать реализовывать это, и был бы признателен за практическое руководство о том, с чего начать.

Я бы сделал эту настройку простой и выполнил следующие шаги:

  1. Расширьте модель пользователя для работы с "субсчетами" (belongs_to)
  2. Добавьте пользователю разрешения с помощью свойств (можно создать роли)
  3. При связывании объекта (например, статья в блоге) всегда связывайте его с главным пользователем, а при получении объектов фильтруйте для главного пользователя. (user.get_main_user())

Таким образом, вам не нужно два бэкенда аутентификации, и вы можете управлять всеми разрешениями и всем остальным в рамках модели пользователя.

Для создания субсчета просто создайте новый экземпляр счета и свяжите его через belongs_to с основным счетом.

class MyUserModel:
    # ....
    # If you want role based access
    role = models.ChoiceField(....)
    belongs_to = models.ForeignKeyField("self", null=True, default=None)

    def get_main_user(self):
        if self.is_main_user:
            return self
        return self.belongs_to

    @property
    def is_main_user(self):
        return self.belongs_to is None

    @property
    def can_do_something(self):
        return True  # Do some checks here if the current is allowed to do something
Вернуться на верх