1
0

views.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 False
  22. except Exception as e:
  23. print(e)
  24. def home(request):
  25. form = LoginForm
  26. login_error = False
  27. if request.method == "POST":
  28. form = LoginForm(request.POST or None)
  29. if form.is_valid():
  30. data = form.cleaned_data
  31. pin = sha256(data['pin'].encode('utf-8')).hexdigest()
  32. print(pin)
  33. user = User.objects.filter(pin=pin)
  34. if user is None:
  35. form.add_error('pin', 'Invalid login')
  36. login_error = True
  37. else:
  38. request.session['u'] = serializers.serialize('json', user)
  39. return redirect('timesheet')
  40. context = {
  41. 'form': form,
  42. 'login_error': login_error
  43. }
  44. return render(request, 'home.html', context=context)
  45. #@secure_page
  46. def timesheet(request):
  47. context = {
  48. }
  49. return render(request, 'timesheet.html', context=context)