login_forms.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. # -*- coding: utf-8 -*-
  2. """
  3. (c) 2014-2016 - Copyright Red Hat Inc
  4. Authors:
  5. Pierre-Yves Chibon <pingou@pingoured.fr>
  6. """
  7. # # pylint cannot import flask extension correctly
  8. # pylint: disable=no-name-in-module
  9. # pylint: disable=import-error
  10. # # The forms here don't have specific methods, they just inherit them.
  11. # pylint: disable=too-few-public-methods
  12. # # We apparently use old style super in our __init__
  13. # pylint: disable=super-on-old-class
  14. # # Couple of our forms do not even have __init__
  15. # pylint: disable=no-init
  16. from __future__ import absolute_import, unicode_literals
  17. import wtforms
  18. try:
  19. from flask_wtf import FlaskForm as FlaskForm
  20. except ImportError:
  21. from flask_wtf import Form as FlaskForm
  22. def same_password(form, field):
  23. """Check if the data in the field is the same as in the password field."""
  24. if field.data != form.password.data:
  25. raise wtforms.validators.ValidationError(
  26. "Both password fields should be equal"
  27. )
  28. class LostPasswordForm(FlaskForm):
  29. """Form to ask for a password change."""
  30. username = wtforms.StringField(
  31. "username",
  32. [wtforms.validators.DataRequired()],
  33. )
  34. class ResetPasswordForm(FlaskForm):
  35. """Form to reset one's password in the local database."""
  36. password = wtforms.PasswordField(
  37. "Password",
  38. [wtforms.validators.DataRequired()],
  39. )
  40. confirm_password = wtforms.PasswordField(
  41. "Confirm password",
  42. [wtforms.validators.DataRequired(), same_password],
  43. )
  44. class LoginForm(FlaskForm):
  45. """Form to login via the local database."""
  46. username = wtforms.StringField(
  47. "username",
  48. [wtforms.validators.DataRequired()],
  49. )
  50. password = wtforms.PasswordField(
  51. "Password",
  52. [wtforms.validators.DataRequired()],
  53. )
  54. class NewUserForm(FlaskForm):
  55. """Form to add a new user to the local database."""
  56. user = wtforms.StringField(
  57. "username",
  58. [wtforms.validators.DataRequired()],
  59. )
  60. fullname = wtforms.StringField(
  61. "Full name", [wtforms.validators.Optional()]
  62. )
  63. email_address = wtforms.StringField(
  64. "Email address",
  65. [wtforms.validators.DataRequired(), wtforms.validators.Email()],
  66. )
  67. password = wtforms.PasswordField(
  68. "Password",
  69. [wtforms.validators.DataRequired()],
  70. )
  71. confirm_password = wtforms.PasswordField(
  72. "Confirm password",
  73. [wtforms.validators.DataRequired(), same_password],
  74. )
  75. class ChangePasswordForm(FlaskForm):
  76. """Form to reset one's password in the local database."""
  77. old_password = wtforms.PasswordField(
  78. "Old Password",
  79. [wtforms.validators.DataRequired()],
  80. )
  81. password = wtforms.PasswordField(
  82. "Password",
  83. [wtforms.validators.DataRequired()],
  84. )
  85. confirm_password = wtforms.PasswordField(
  86. "Confirm password",
  87. [wtforms.validators.DataRequired(), same_password],
  88. )