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 не могут.
Можно ли реализовать эту функцию без использования нескольких моделей пользователей?