views.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. # Standard Library Imports
  2. # Third-Party Library Imports
  3. # Django Imports
  4. from django.contrib import messages
  5. from .decorators import login_required
  6. from django.http import JsonResponse
  7. from django.shortcuts import get_object_or_404, redirect, render
  8. from django.utils import timezone
  9. from django.views.decorators.csrf import csrf_exempt
  10. from django.conf import settings
  11. import os
  12. import json
  13. USER_DATA_FILE = os.path.join(settings.BASE_DIR, 'users.json')
  14. # To login
  15. def login_view(request):
  16. if request.method == "POST":
  17. email = request.POST.get("username")
  18. password = request.POST.get("password")
  19. print("Email: ", email)
  20. print("Password: ", password)
  21. # Check if file exists
  22. if os.path.exists(USER_DATA_FILE):
  23. with open(USER_DATA_FILE, 'r') as f:
  24. try:
  25. users = json.load(f)
  26. except json.JSONDecodeError:
  27. users = []
  28. else:
  29. users = []
  30. # Check if user already exists
  31. for user in users:
  32. if user['email'] == email:
  33. if user['password'] == password:
  34. # login(request, user)
  35. request.session['user_email'] = user['email']
  36. # ✅ Correct credentials
  37. return render(request, 'index.html', {'email': email})
  38. else:
  39. # ❌ Wrong password
  40. print("Invalid credentials.")
  41. messages.error(request, "Invalid email or password.")
  42. return redirect('login_view')
  43. # ❌ Email not found
  44. messages.error(request, "User not found.")
  45. return redirect('login_view')
  46. # If not found, save new user
  47. # users.append({'email': email, 'password': password})
  48. # with open(USER_DATA_FILE, 'w') as f:
  49. # json.dump(users, f, indent=4)
  50. # return render(request, 'index.html', {'email': email})
  51. print("Rendering login page.")
  52. return render(request, 'login.html')
  53. # To logout
  54. @login_required
  55. def logout_view(request):
  56. # Clear all the session data and log out the user
  57. # logout(request)
  58. if 'user_email' in request.session:
  59. request.session.flush() # Clears all session data
  60. messages.success(request, "You have been logged out successfully.")
  61. return redirect('login_view')
  62. # messages.success(request, "You have been logged out successfully.")
  63. # return redirect('login')
  64. # index page
  65. @login_required
  66. def upload(request):
  67. return render(request, 'index.html')
  68. # get-data page
  69. @login_required
  70. def getData(request):
  71. return render(request, 'get-data.html')