|
114 | 114 | # from .forms import RegistrationForm, UserLoginForm, UserPasswordResetForm, UserPasswordChangeForm, UserSetPasswordForm, StudentForm |
115 | 115 | # Create your views here. |
116 | 116 |
|
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 | | - |
151 | 117 | # Regular Views |
152 | 118 | def client_sign_in(request): |
153 | 119 | return render(request, 'accounts/client_sign-in.html') |
@@ -588,60 +554,24 @@ def UpskillingJoinProjectView(request): |
588 | 554 | # OTP-Based Login |
589 | 555 | def login_with_otp(request): |
590 | 556 | """ |
591 | | - For Login - TEMPORARY BYPASS ENABLED |
| 557 | + For Login with OTP verification |
592 | 558 | """ |
593 | 559 | 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} |
614 | 566 | ) |
| 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') |
615 | 571 |
|
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) |
645 | 575 |
|
646 | 576 | if user: |
647 | 577 | otp = random.randint(100000, 999999) |
@@ -849,58 +779,19 @@ class UserLoginView(LoginView): |
849 | 779 | form_class = UserLoginForm |
850 | 780 |
|
851 | 781 | 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 | | - |
875 | 782 | # Force new session to rotate session key (prevents fixation) |
876 | | - self.request.session.flush() |
| 783 | + self.request.session.flush() # <-- This destroys old session |
877 | 784 |
|
878 | | - # Log in the bypass user directly |
879 | | - login(self.request, user) |
| 785 | + # Successful login, proceed as normal |
| 786 | + response = super().form_valid(form) |
880 | 787 |
|
881 | 788 | # Store session info for hijack protection |
882 | 789 | request = self.request |
883 | 790 | request.session['ip_address'] = self.get_client_ip(request) |
884 | 791 | request.session['user_agent'] = request.META.get('HTTP_USER_AGENT', '') |
885 | 792 | request.session['session_token'] = request.session.session_key |
886 | 793 |
|
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 |
904 | 795 |
|
905 | 796 | def get_success_url(self): |
906 | 797 | """Override to implement conditional redirect based on join-us completion""" |
|
0 commit comments