Django: разрешение требуется на основе ролей, но используется одна модель User

У меня есть пользовательская модель пользователя, которая выглядит следующим образом:

class SpotUser(AbstractBaseUser):

    BASIC = 1
    ADMIN = 2
    QA = 3
    RESEARCH = 4

    uid = models.IntegerField(primary_key=True)
    name = models.TextField(blank=True, null=True)
    email = models.EmailField(unique=True)
    password = models.TextField(blank=True, null=True)
    USER_TYPE_CHOICES = (
        (BASIC, 'Basic'),
        (QA, 'Qa'),
        (RESEARCH, 'Research'),
        (ADMIN, 'Admin')
    )
    user_type = models.TextField(choices=USER_TYPE_CHOICES, default=BASIC)
    last_login = models.DateField()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    class Meta:
        managed = False
        db_table = 'users'

Я хотел бы добавить разрешения на основе роли. Например: Admin и research могут обновлять пользователей через backend API, но QA и Basic не могут.

Можно ли реализовать эту функцию без использования нескольких моделей пользователей?

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