From bcdd33ea0fadafe7b09f2c748b231ecf5386e8f9 Mon Sep 17 00:00:00 2001 From: bashmak Date: Sun, 18 Mar 2018 00:26:35 +0300 Subject: [PATCH] Fix some bugs --- djing/auth_backends.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 djing/auth_backends.py diff --git a/djing/auth_backends.py b/djing/auth_backends.py new file mode 100644 index 0000000..292a8cb --- /dev/null +++ b/djing/auth_backends.py @@ -0,0 +1,19 @@ +from django.contrib.auth.backends import ModelBackend +from .models import BaseAccount, UserProfile + + + +class CustomAuthBackend(ModelBackend): + + def authenticate(self, request, username=None, password=None, **kwargs): + if username is None: + username = kwargs.get(UserModel.USERNAME_FIELD) + try: + user = UserModel._default_manager.get_by_natural_key(username) + except UserModel.DoesNotExist: + # Run the default password hasher once to reduce the timing + # difference between an existing and a non-existing user (#20760). + UserModel().set_password(password) + else: + if user.check_password(password) and self.user_can_authenticate(user): + return user