Skip to content

Commit cc1b59c

Browse files
committed
Remove temporary login bypass and restore authentication
Eliminated all temporary login bypass code used for testing, including the bypass_login_any_user function and related logic in login_with_otp and UserLoginView. Restored standard authentication and session handling to ensure proper user verification and security.
1 parent ca4304c commit cc1b59c

1 file changed

Lines changed: 18 additions & 127 deletions

File tree

home/views.py

Lines changed: 18 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -114,40 +114,6 @@
114114
# from .forms import RegistrationForm, UserLoginForm, UserPasswordResetForm, UserPasswordChangeForm, UserSetPasswordForm, StudentForm
115115
# Create your views here.
116116

117-
# TEMPORARY LOGIN BYPASS FUNCTION
118-
def bypass_login_any_user(request):
119-
"""
120-
TEMPORARY BYPASS FUNCTION - Use this for testing login without authentication
121-
"""
122-
print("=== 🚀 BYPASS LOGIN FUNCTION CALLED ===")
123-
124-
from django.contrib.auth import get_user_model, login
125-
User = get_user_model()
126-
127-
# Create or get regular user for bypass
128-
user, created = User.objects.get_or_create(
129-
email='user@bypass.com',
130-
defaults={
131-
'first_name': 'Test',
132-
'last_name': 'User',
133-
'is_active': True,
134-
'is_staff': False,
135-
'is_superuser': False
136-
}
137-
)
138-
139-
if created:
140-
user.set_password('user123')
141-
user.save()
142-
print(f"✅ Created bypass user: {user.email}")
143-
144-
# Log in directly
145-
login(request, user)
146-
messages.success(request, f"🚀 BYPASSED LOGIN - Logged in as {user.email}")
147-
print(f"🚀 BYPASSED LOGIN - User logged in: {user.email}")
148-
149-
return redirect('/')
150-
151117
# Regular Views
152118
def client_sign_in(request):
153119
return render(request, 'accounts/client_sign-in.html')
@@ -588,60 +554,24 @@ def UpskillingJoinProjectView(request):
588554
# OTP-Based Login
589555
def login_with_otp(request):
590556
"""
591-
For Login - TEMPORARY BYPASS ENABLED
557+
For Login with OTP verification
592558
"""
593559
if request.method == 'POST':
594-
# TEMPORARY BYPASS - Complete login bypass for testing
595-
print("=== 🚀 TEMPORARY LOGIN BYPASS ENABLED ===")
596-
597-
username = request.POST.get('username', 'admin')
598-
password = request.POST.get('password', 'admin')
599-
600-
# TEMPORARY BYPASS - Skip all authentication checks
601-
from django.contrib.auth import get_user_model, login
602-
User = get_user_model()
603-
604-
# Create or get regular user for bypass
605-
user, created = User.objects.get_or_create(
606-
email='user@bypass.com',
607-
defaults={
608-
'first_name': 'Test',
609-
'last_name': 'User',
610-
'is_active': True,
611-
'is_staff': False,
612-
'is_superuser': False
613-
}
560+
# First, verify reCAPTCHA
561+
token = request.POST.get('g-recaptcha-response')
562+
secret_key = settings.RECAPTCHA_SECRET_KEY
563+
recaptcha_response = requests.post(
564+
'https://www.google.com/recaptcha/api/siteverify',
565+
data={'secret': secret_key, 'response': token}
614566
)
567+
result = recaptcha_response.json()
568+
if not result.get('success') or result.get('score', 0) < 0.5:
569+
messages.error(request, "reCAPTCHA verification failed. Please try again.")
570+
return render(request, 'accounts/sign-in.html')
615571

616-
if created:
617-
user.set_password('user123') # Set a password
618-
user.save()
619-
print(f"✅ Created bypass user: {user.email}")
620-
else:
621-
print(f"✅ Using existing bypass user: {user.email}")
622-
623-
# Log in directly without any checks
624-
login(request, user)
625-
messages.success(request, f"🚀 BYPASSED LOGIN - Logged in as {user.email}")
626-
print(f"🚀 BYPASSED LOGIN - User logged in: {user.email}")
627-
628-
return redirect('/') # Redirect to home page
629-
630-
# ORIGINAL CODE COMMENTED OUT FOR BYPASS
631-
# # First, verify reCAPTCHA
632-
# token = request.POST.get('g-recaptcha-response')
633-
# secret_key = settings.RECAPTCHA_SECRET_KEY
634-
# recaptcha_response = requests.post(
635-
# 'https://www.google.com/recaptcha/api/siteverify',
636-
# data={'secret': secret_key, 'response': token}
637-
# )
638-
# result = recaptcha_response.json()
639-
# if not result.get('success') or result.get('score', 0) < 0.5:
640-
# messages.error(request, "reCAPTCHA verification failed. Please try again.")
641-
# return render(request, 'accounts/sign-in.html')
642-
# username = request.POST.get('username')
643-
# password = request.POST.get('password')
644-
# user = authenticate(request, username=username, password=password)
572+
username = request.POST.get('username')
573+
password = request.POST.get('password')
574+
user = authenticate(request, username=username, password=password)
645575

646576
if user:
647577
otp = random.randint(100000, 999999)
@@ -849,58 +779,19 @@ class UserLoginView(LoginView):
849779
form_class = UserLoginForm
850780

851781
def form_valid(self, form):
852-
# TEMPORARY BYPASS - Skip all authentication checks
853-
print("=== 🚀 UserLoginView BYPASS ENABLED ===")
854-
855-
from django.contrib.auth import get_user_model, login
856-
User = get_user_model()
857-
858-
# Create or get regular user for bypass
859-
user, created = User.objects.get_or_create(
860-
email='user@bypass.com',
861-
defaults={
862-
'first_name': 'Test',
863-
'last_name': 'User',
864-
'is_active': True,
865-
'is_staff': False,
866-
'is_superuser': False
867-
}
868-
)
869-
870-
if created:
871-
user.set_password('user123')
872-
user.save()
873-
print(f"✅ Created bypass user: {user.email}")
874-
875782
# Force new session to rotate session key (prevents fixation)
876-
self.request.session.flush()
783+
self.request.session.flush() # <-- This destroys old session
877784

878-
# Log in the bypass user directly
879-
login(self.request, user)
785+
# Successful login, proceed as normal
786+
response = super().form_valid(form)
880787

881788
# Store session info for hijack protection
882789
request = self.request
883790
request.session['ip_address'] = self.get_client_ip(request)
884791
request.session['user_agent'] = request.META.get('HTTP_USER_AGENT', '')
885792
request.session['session_token'] = request.session.session_key
886793

887-
messages.success(request, f"🚀 BYPASSED LOGIN - Logged in as {user.email}")
888-
print(f"🚀 BYPASSED LOGIN - User logged in: {user.email}")
889-
890-
# Redirect to success URL
891-
return redirect(self.get_success_url())
892-
893-
# ORIGINAL CODE COMMENTED OUT FOR BYPASS
894-
# # Force new session to rotate session key (prevents fixation)
895-
# self.request.session.flush() # <-- This destroys old session
896-
# # Successful login, proceed as normal
897-
# response = super().form_valid(form)
898-
# # Store session info for hijack protection
899-
# request = self.request
900-
# request.session['ip_address'] = self.get_client_ip(request)
901-
# request.session['user_agent'] = request.META.get('HTTP_USER_AGENT', '')
902-
# request.session['session_token'] = request.session.session_key
903-
# return response
794+
return response
904795

905796
def get_success_url(self):
906797
"""Override to implement conditional redirect based on join-us completion"""

0 commit comments

Comments
 (0)