Ограничение доступа к представлениям на основе пользовательского типа в Django - PullRequest
0 голосов
/ 06 января 2020

Я создал пользовательского пользователя с использованием AbstractUser с 3 типами пользователей

    USER_TYPE = (
    ("type1", "type1"),
    ("type2", "type2"),
    ("type3", "type3"),
)

class User(AbstractUser):
    user_type = models.CharField(max_length=50, choices=USER_TYPE, null=True, blank=True, default="")

, и у каждого пользователя есть панель мониторинга, видимая только соответствующему пользователю, но в моем случае я могу получить доступ ко всем панелям мониторинга, если зарегистрирован любой пользователь так, как ограничить доступ на основе этого типа пользователей (тип1, тип2, тип3) Я использую представления на основе классов

1 Ответ

1 голос
/ 06 января 2020

Вы можете использовать UserPassesTestMixin mixin

class YourView(UserPassesTestMixin, View):

    def test_func(self):
        return self.request.user.user_type == 'type1'
...