diff --git a/flask_security/forms.py b/flask_security/forms.py index 373debc..77cc065 100644 --- a/flask_security/forms.py +++ b/flask_security/forms.py @@ -9,10 +9,12 @@ :license: MIT, see LICENSE for more details. """ +import inspect + from flask import request, current_app from flask.ext.wtf import Form as BaseForm, TextField, PasswordField, \ SubmitField, HiddenField, Required, BooleanField, EqualTo, Email, \ - ValidationError, Length + ValidationError, Length, Field from werkzeug.local import LocalProxy from .confirmable import requires_confirmation @@ -89,6 +91,10 @@ class NextFormMixin(): class RegisterFormMixin(): submit = SubmitField("Register") + def to_dict(form): + fields = inspect.getmembers(form, lambda member: isinstance(member, Field)) + return dict((key, value.data) for key, value in fields) + class SendConfirmationForm(Form, UserEmailFormMixin): """The default forgot password form""" @@ -172,10 +178,7 @@ class LoginForm(Form, NextFormMixin): class ConfirmRegisterForm(Form, RegisterFormMixin, UniqueEmailFormMixin, NewPasswordFormMixin): - def to_dict(self): - return dict(email=self.email.data, - password=self.password.data) - + pass class RegisterForm(ConfirmRegisterForm, PasswordConfirmFormMixin): pass