示例#1
0
class LoginForm(model_form(User, base_class=Form, exclude=['first_name', 'last_name'],
                           field_args=User.get_field_args_login())):
    """
    Class representing the form handling authentication in the admin area.
    """

    def validate_username(self, field):
        del field

        user = self.get_user()

        if user is None:
            raise validators.ValidationError('Username does not exist.')

    def validate_password(self, field):
        del field

        user = self.get_user()
        if user is None:
            return

        if not check_password_hash(user.password, self.password.data):
            raise validators.ValidationError('Password is invalid.')

    def get_user(self):
        return User.query.filter_by(username=self.username.data).first()