You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
padelclub_backend/tournaments/backends.py

34 lines
1.2 KiB

# backends.py
from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend
from django.db.models import Q
import logging
logger = logging.getLogger(__name__)
class EmailOrUsernameModelBackend(ModelBackend):
def authenticate(self, request, username=None, password=None, **kwargs):
UserModel = get_user_model()
# print(f"Backend attempting authentication for: {username}") # Debug print
logger.info(f"Backend attempting authentication for: {username}")
try:
user = UserModel.objects.get(
Q(username__iexact=username) | Q(email__iexact=username)
)
# print(f"User found: {user}") # Debug print
logger.info(f"User found: {user}")
if user.check_password(password):
# print("Password check successful") # Debug print
logger.info("Password check successful")
return user
print("Password check failed") # Debug print
logger.warning("Password check failed")
return None
except UserModel.DoesNotExist:
print("User not found") # Debug print
logger.warning("User not found")
return None