verifiers.py 768 B

12345678910111213141516171819202122232425262728
  1. # -*- utf-8 -*-
  2. """
  3. flaskbb.tokens.verifiers
  4. ~~~~~~~~~~~~~~~~~~~~~~~~
  5. Token verifier implementations
  6. :copyright: (c) 2014-2018 the FlaskBB Team
  7. :license: BSD, see LICENSE for more details
  8. """
  9. from ..core.tokens import TokenVerifier
  10. from ..core.exceptions import ValidationError
  11. class EmailMatchesUserToken(TokenVerifier):
  12. """
  13. Ensures that the token submitted for use matches
  14. the email entered by the user.
  15. :param User: User model for querying against
  16. """
  17. def __init__(self, users):
  18. self.users = users
  19. def verify_token(self, token, email, **kwargs):
  20. user = self.users.query.get(token.user_id)
  21. if user.email.lower() != email.lower():
  22. raise ValidationError("email", "Wrong email")