Guest User

Untitled

a guest
Oct 19th, 2018
354
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. class LoginForm(forms.Form):
  2.  
  3. password = PasswordField(
  4. label = _("Password"))
  5. remember = forms.BooleanField(
  6. label = _("Remember Me"),
  7. # help_text = _("If checked you will stay logged in for 3 weeks"),
  8. required = False
  9. )
  10.  
  11. user = None
  12.  
  13. def __init__(self, *args, **kwargs):
  14. super(LoginForm, self).__init__(*args, **kwargs)
  15. ordering = []
  16. if app_settings.EMAIL_AUTHENTICATION:
  17. self.fields["email"] = forms.EmailField(
  18. label = ugettext("E-mail"),
  19. )
  20. ordering.append("email")
  21. else:
  22. self.fields["username"] = forms.CharField(
  23. label = ugettext("Username"),
  24. max_length = 30,
  25. )
  26. ordering.append("username")
  27. ordering.extend(["password", "remember"])
  28. self.fields.keyOrder = ordering
  29.  
  30. def user_credentials(self):
  31. """
  32. Provides the credentials required to authenticate the user for
  33. login.
  34. """
  35. credentials = {}
  36. if app_settings.EMAIL_AUTHENTICATION:
  37. credentials["email"] = self.cleaned_data["email"]
  38. else:
  39. credentials["username"] = self.cleaned_data["username"]
  40. credentials["password"] = self.cleaned_data["password"]
  41. return credentials
  42.  
  43. def clean(self):
  44. if self._errors:
  45. return
  46. user = authenticate(**self.user_credentials())
  47. if user:
  48. if user.is_active:
  49. self.user = user
  50. else:
  51. raise forms.ValidationError(_("This account is currently inactive."))
  52. else:
  53. if app_settings.EMAIL_AUTHENTICATION:
  54. error = _("The e-mail address and/or password you specified are not correct.")
  55. else:
  56. error = _("The username and/or password you specified are not correct.")
  57. raise forms.ValidationError(error)
  58. return self.cleaned_data
  59.  
  60. def login(self, request, redirect_url=None):
  61. ret = perform_login(request, self.user, redirect_url=redirect_url)
  62. if self.cleaned_data["remember"]:
  63. request.session.set_expiry(60 * 60 * 24 * 7 * 3)
  64. else:
  65. request.session.set_expiry(0)
  66. return ret
Add Comment
Please, Sign In to add comment