From cbd129df0ceebc4909aaee67e1fffe105512bff1 Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Tue, 3 Jun 2025 13:59:02 +0545 Subject: [PATCH] refactor(backends): try authenticating as superuser/admin and staff by phone first --- app/backends.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/backends.py b/app/backends.py index 416b341..dda6e5f 100644 --- a/app/backends.py +++ b/app/backends.py @@ -15,6 +15,14 @@ class MultiModelBackend(ModelBackend): if username is None or password is None: return None + # Try authenticating as superuser/admin first + try: + user = User.objects.get(email=username) + if user.check_password(password): + return user + except User.DoesNotExist: + pass + # Try authenticating as Staff by phone first staff = Staff.objects.filter(phone=username).first() if staff: @@ -52,6 +60,13 @@ class MultiModelBackend(ModelBackend): """ Retrieve a user instance using their ID. """ + # Try to get superuser/admin first + try: + return User.objects.get(pk=user_id) + except User.DoesNotExist: + pass + + # Try other user types for model in [Staff, Student, Parent]: try: return model.objects.get(pk=user_id)