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

Generated: Thu 2013-12-19 21:13 GMT

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

Stats: 21 executed, 0 missed, 7 excluded, 17 ignored

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