Настроить групповые разрешения в django?

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

from django.contrib.auth.models import AbstractUser
from django.contrib.auth.models import Group

class Role(models.Model):
    title = models.CharField(max_length=32)
    groups = models.ManyToManyField(Group)

    def __str__(self) -> str:
        return self.title

driver role with access

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

Теперь у меня есть модель пользователя:

class Users(AbstractUser):
    role = models.ForeignKey(
        Role, on_delete=models.CASCADE, related_name='roles', blank=True, null=True)

    def __str__(self):
        return (self.username)

Я не хочу выбирать групповые разрешения каждый раз при создании нового пользователя. Я просто хочу установить роль для пользователя, и он должен автоматически выбирать все разрешения на основе групп выбранной роли. Как настроить группы в моделях django?

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