ftp_deploy.server.views.login: 30 total statements, 100.0% covered

Generated: Sun 2014-03-16 19:26 GMT

Source file: /var/www/service.dev/service/ftp_deploy/server/views/login.py

Stats: 21 executed, 0 missed, 9 excluded, 16 ignored

  1. from django.http import HttpResponseRedirect
  2. from django.contrib import messages
  3. from django.contrib.auth import authenticate
  4. from django.contrib.auth import login as login_user
  5. from django.contrib.auth import logout
  6. from django.core.urlresolvers import reverse, reverse_lazy
  7. from django.shortcuts import redirect
  8. from django.views.generic import FormView, View
  9. from ftp_deploy.server.forms import LoginForm
  10. class loginView(FormView):
  11. """View for login"""
  12. form_class = LoginForm
  13. template_name = 'ftp_deploy/login/login.html'
  14. success_url = reverse_lazy('ftpdeploy_dashboard')
  15. def get(self, request, *args, **kwargs):
  16. if self.request.user.is_authenticated():
  17. return HttpResponseRedirect(reverse('ftpdeploy_dashboard'))
  18. return super(loginView, self).get(request, *args, **kwargs)
  19. def form_valid(self, form):
  20. username = form.cleaned_data['username']
  21. password = form.cleaned_data['password']
  22. user = authenticate(username=username, password=password)
  23. if user is not None:
  24. login_user(self.request, user)
  25. else:
  26. messages.error(self.request, 'Username or Password incorrect.')
  27. return HttpResponseRedirect(reverse('ftpdeploy_login'))
  28. return super(loginView, self).form_valid(form)
  29. class logoutView(View):
  30. """View for logout"""
  31. def get(self, request, *args, **kwargs):
  32. logout(request)
  33. return redirect(reverse('ftpdeploy_login'))