views.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. from django.core.files.storage import FileSystemStorage
  12. import os
  13. import json
  14. USER_DATA_FILE = os.path.join(settings.BASE_DIR, 'users.json')
  15. # To login
  16. def login_view(request):
  17. if request.method == "POST":
  18. email = request.POST.get("username")
  19. password = request.POST.get("password")
  20. print("Email: ", email)
  21. print("Password: ", password)
  22. # Check if file exists
  23. if os.path.exists(USER_DATA_FILE):
  24. with open(USER_DATA_FILE, 'r') as f:
  25. try:
  26. users = json.load(f)
  27. except json.JSONDecodeError:
  28. users = []
  29. else:
  30. users = []
  31. # Check if user already exists
  32. for user in users:
  33. if user['email'] == email:
  34. if user['password'] == password:
  35. # login(request, user)
  36. request.session['user_email'] = user['email']
  37. # ✅ Correct credentials
  38. return render(request, 'index.html', {'email': email})
  39. else:
  40. # ❌ Wrong password
  41. print("Invalid credentials.")
  42. messages.error(request, "Invalid email or password.")
  43. return redirect('login_view')
  44. # ❌ Email not found
  45. messages.error(request, "User not found.")
  46. return redirect('login_view')
  47. # If not found, save new user
  48. # users.append({'email': email, 'password': password})
  49. # with open(USER_DATA_FILE, 'w') as f:
  50. # json.dump(users, f, indent=4)
  51. # return render(request, 'index.html', {'email': email})
  52. print("Rendering login page.")
  53. return render(request, 'login.html')
  54. # To logout
  55. @login_required
  56. def logout_view(request):
  57. # Clear all the session data and log out the user
  58. # logout(request)
  59. if 'user_email' in request.session:
  60. request.session.flush() # Clears all session data
  61. messages.success(request, "You have been logged out successfully.")
  62. return redirect('login_view')
  63. # messages.success(request, "You have been logged out successfully.")
  64. # return redirect('login')
  65. # index page
  66. # @login_required
  67. # def upload(request):
  68. # if request.method == 'POST' and request.FILES.get('file'):
  69. # uploaded_file = request.FILES['file']
  70. # fs = FileSystemStorage()
  71. # filename = fs.save(uploaded_file.name, uploaded_file)
  72. # file_url = fs.url(filename)
  73. # return render(request, 'index.html', {'file_url': file_url, 'success': True})
  74. # return render(request, 'index.html')
  75. @login_required
  76. def upload(request):
  77. return render(request, 'index.html')
  78. # get-data page
  79. @login_required
  80. def getData(request):
  81. return render(request, 'get-data.html')