Laurent 2 months ago
commit 334bcad30f
  1. 1
      padelclub_backend/settings.py
  2. 7
      tournaments/custom_views.py
  3. 18
      tournaments/middleware.py

@ -65,7 +65,6 @@ MIDDLEWARE = [
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'tournaments.middleware.ReferrerMiddleware',
]
ROOT_URLCONF = 'padelclub_backend.urls'

@ -43,6 +43,13 @@ class CustomLoginView(auth_views.LoginView):
return context
def get(self, request, *args, **kwargs):
# Capture referrer for anonymous users (replaces middleware functionality)
if not request.user.is_authenticated:
referrer = request.META.get('HTTP_REFERER')
# Only store referrer if it exists and is not the login page itself
if referrer and 'login' not in referrer:
request.session['login_referrer'] = referrer
# Clear any potential password reset session data
keys_to_clear = [key for key in request.session.keys()
if 'reset' in key or 'password' in key]

@ -1,18 +0,0 @@
from django.urls import reverse
class ReferrerMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# Check if the user is anonymous and going to the login page
if not request.user.is_authenticated and request.path == reverse('login'):
# Get the referring URL from the HTTP_REFERER header
referrer = request.META.get('HTTP_REFERER')
# Only store referrer if it exists and is not the login page itself
if referrer and 'login' not in referrer:
request.session['login_referrer'] = referrer
response = self.get_response(request)
return response
Loading…
Cancel
Save