auth.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from django.contrib.auth import authenticate, login
  2. from django.http import Http404
  3. from django.shortcuts import render, redirect
  4. from django.views.decorators.debug import sensitive_post_parameters
  5. from django.views.decorators.cache import never_cache
  6. from django.views.decorators.csrf import csrf_protect
  7. from misago.core.decorators import require_POST
  8. from misago.users.decorators import deny_authenticated, deny_guests
  9. from misago.users.forms.auth import AuthenticationForm
  10. @sensitive_post_parameters()
  11. @deny_authenticated
  12. @csrf_protect
  13. @never_cache
  14. def login(request):
  15. form = AuthenticationForm(request)
  16. if request.method == 'POST':
  17. form = AuthenticationForm(request, data=request.POST)
  18. if form.is_valid():
  19. request.session.pop('login_ban', None)
  20. return render(request, 'misago/login.html', {'form': form})
  21. @deny_guests
  22. @require_POST
  23. @csrf_protect
  24. @never_cache
  25. def logout(request):
  26. return redirect('misago:index')
  27. @never_cache
  28. def login_banned(request):
  29. try:
  30. ban = request.session.['login_ban']
  31. except KeyError:
  32. Http404()
  33. return render(request, 'misago/errorpages/banned.html', {'ban': ban})