1
0

views.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from django.shortcuts import render, redirect
  2. from . forms import LoginForm
  3. from . models import User
  4. from hashlib import sha256
  5. from django.core import serializers
  6. def logout(request):
  7. try:
  8. del request.session['user']
  9. except Exception as e:
  10. print(e)
  11. return redirect('home')
  12. def secure_page(request):
  13. try:
  14. session_user = serializers.deserialize('json', request.session.get('u'))
  15. print(session_user)
  16. user = User.objects.filter(pin=session_user.pin).first()
  17. if user:
  18. return True
  19. else:
  20. del request.session['u']
  21. return redirect('home')
  22. except Exception as e:
  23. print(e)
  24. return redirect('home')
  25. def home(request):
  26. form = LoginForm
  27. login_error = False
  28. if request.method == "POST":
  29. form = LoginForm(request.POST or None)
  30. if form.is_valid():
  31. data = form.cleaned_data
  32. pin = sha256(data['pin'].encode('utf-8')).hexdigest()
  33. print(pin)
  34. user = User.objects.filter(pin=pin)
  35. if user is None:
  36. form.add_error('pin', 'Invalid login')
  37. login_error = True
  38. else:
  39. request.session['u'] = serializers.serialize('json', user)
  40. return redirect('timesheet')
  41. context = {
  42. 'form': form,
  43. 'login_error': login_error
  44. }
  45. return render(request, 'home.html', context=context)
  46. @secure_page
  47. def timesheet(request):
  48. context = {
  49. }
  50. return render(request, 'timesheet.html', context=context)