From 3b2937b6d11664f90089640afac9250e11244982 Mon Sep 17 00:00:00 2001 From: Tom Hubrecht Date: Sat, 14 Sep 2024 15:44:52 +0200 Subject: [PATCH] feat(dgsi.mixins): Introduce StaffRequiredMixin --- src/dgsi/mixins.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/dgsi/mixins.py diff --git a/src/dgsi/mixins.py b/src/dgsi/mixins.py new file mode 100644 index 0000000..dcb6d70 --- /dev/null +++ b/src/dgsi/mixins.py @@ -0,0 +1,16 @@ +from django.contrib.auth.mixins import UserPassesTestMixin +from django.http import HttpRequest + +from dgsi.models import User + + +class StaffRequiredMixin(UserPassesTestMixin): + request: HttpRequest + + def test_func(self) -> bool | None: + if self.request.user.is_authenticated: + return False + + assert isinstance(self.request.user, User) + + return self.request.user.is_admin