Beispiel #1
0
class SignupForm(Form):
    '''It is used for sign up, defines sign up form.'''

    next = HiddenField()

    username = TextField(_(u"用户名:"), validators=[
                         required(message=_(u"请输入用户名或者邮箱地址")),
                         is_legal_name])

    password = PasswordField(_(u"密码:"), validators=[
                             required(message=_(u"请输入密码"))])

    password_again = PasswordField(_(u"确认密码:"), validators=[
                                   equal_to(u"password", message=
                                            _(u"密码不一致"))])

    email = TextField(_(u"邮箱地址:"), validators=[
                      required(message=_(u"请输入邮箱地址")),
                      email(message=_(u"请输入有效的邮箱地址"))])

    submit = SubmitField(_(u"注册"))

    def validate_username(self, field):
        user = User.query.filter(User.username.like(field.data)).first()
        if user:
            raise ValidationError(gettext(u"用户名已经存在"))

    def validate_email(self, field):
        user = User.query.filter(User.email.like(field.data)).first()
        if user:
            raise ValidationError(gettext(u"邮箱地址已经存在"))
Beispiel #2
0
class SignupForm(Form):

    next = HiddenField()

    username = TextField(
        u"用户名",
        validators=[required(message=_("Username required")), is_username])

    password = PasswordField(
        u"密码", validators=[required(message=_("Password required"))])

    password_again = PasswordField(u"密码确认", validators=[
                                   equal_to("password", message=\
                                            _("Passwords don't match"))])

    email = TextField(u"邮箱",
                      validators=[
                          required(message=_("Email address required")),
                          email(message=_("A valid email address is required"))
                      ])

    recaptcha = RecaptchaField(_("Copy the words appearing below"))

    submit = SubmitField(u"注册")

    def validate_username(self, field):
        user = User.query.filter(User.username.like(field.data)).first()
        if user:
            raise ValidationError, u"改用户名已存在"

    def validate_email(self, field):
        user = User.query.filter(User.email.like(field.data)).first()
        if user:
            raise ValidationError, gettext("This email is taken")
Beispiel #3
0
class ResetPasswordForm(Form):
    activation_key = HiddenField()
    password = PasswordField(u"新密码", validators=[required(message=u"新密码是必须的")])
    password_again = PasswordField(u"密码 <small>(再一次)</small>", validators=[
                                   equal_to("password", message=\
                                            u"密码不匹配")])
    submit = SubmitField(u"保存")
Beispiel #4
0
class SignupForm(Form):
    next = HiddenField()
    name = TextField(_('Username'), [required()])
    password = PasswordField(
        _('Password'),
        [required(), length(min=PASSLEN_MIN, max=PASSLEN_MAX)])
    password_again = PasswordField(_('Password again'), [
        required(),
        length(min=PASSLEN_MIN, max=PASSLEN_MAX),
        equal_to('password')
    ])
    email = TextField(
        _('Email address'),
        [required(),
         email(message=_('A valid email address is required'))])
    invitation_code = TextField(
        _('Invitation Code'),
        [required(message=_('Please fill in the invitation code!'))])
    submit = SubmitField(_('Signup'))

    def validate_name(self, field):
        if g.db.users.find_one({"_id": field.data}) is not None:
            raise ValidationError, _('This username is taken')

    def validate_email(self, field):
        if g.db.users.find_one({"email": field.data}) is not None:
            raise ValidationError, _('This email is taken')

    def validate_invitation_code(self, field):
        if g.db.invitates.find_one({
                "code": field.data,
                "used": 'False'
        }) is None:
            raise ValidationError, _('Invalid code')
Beispiel #5
0
class ChangePasswordForm(Form):
    activation_key = HiddenField()
    password = PasswordField(
        'Password', validators=[required(message=_('Password is required'))])
    password_again = PasswordField(_('Password again'), validators=[
                                   equal_to('password', message=\
                                            _("Passwords don't match"))])
    submit = SubmitField(_('Save'))
Beispiel #6
0
class ChangePasswordForm(Form):

    password = PasswordField(_(u"密码:"), validators=[
                             required(message=_(u"请输入密码"))])

    password_again = PasswordField(_(u"确认密码:"), validators=[
                                   equal_to("password", message=
                                            _(u"密码不一致"))])

    submit = SubmitField(_(u"保存"))
Beispiel #7
0
class ChangePasswordForm(Form):
    '''It is used for change account password, defines change account password form.'''

    password = PasswordField(_(u"密码:"), validators=[
                             required(message=_(u"请输入密码"))])

    password_again = PasswordField(_(u"确认密码:"), validators=[
                                   equal_to("password", message=
                                            _(u"密码不一致"))])

    submit = SubmitField(_(u"保存"))
Beispiel #8
0
class SignupForm(UserForm):
    next = HiddenField()
    username = TextField(
        u"用户名", validators=[required(message=u"用户名是必须的"), is_username])
    password = PasswordField(u"密码", validators=[required(message=u"密码是必须的")])

    password_again = PasswordField(u"密码 <small>(再一次)</small>", validators=[
                                   equal_to("password", message=\
                                            "密码不匹配")])
    email = TextField(
        u"Email",
        validators=[required(u"邮箱地址是必须的"),
                    email(message=u"必须是一个邮箱哦")])
    submit = SubmitField(u"注册")
Beispiel #9
0
class RegisterForm(Form):

    username = TextField(
        "Username",
        validators=[required(message="username required")],
    )

    email = TextField("email")

    password1 = PasswordField(
        "Password", validators=[required(message="Password required")])

    password2 = PasswordField(
        "Password2",
        validators=[equal_to("password1", message="Passwords must match")])
Beispiel #10
0
class AccountForm(Form):
    next = HiddenField()
    password = PasswordField(_('Password'), [required()])
    new_password = PasswordField(
        _('New password'), [required(), length(min=6, max=16)])
    password_again = PasswordField(
        _('Password again'),
        [required(),
         length(min=6, max=16),
         equal_to('new_password')])
    submit = SubmitField(_('Save'))

    def validate_password(form, field):
        user = User.query.filter_by(name=current_user.name).first()
        if not user.check_password(field.data):
            raise ValidationError(_("Password is wrong."))
Beispiel #11
0
class UProfileForm(Form):
    name = TextField(_('Username'), [required()])
    password = PasswordField(
        _('Password'),
        [required(), length(min=PASSLEN_MIN, max=PASSLEN_MAX)])
    password_again = PasswordField(_('Password again'), [
        required(),
        length(min=PASSLEN_MIN, max=PASSLEN_MAX),
        equal_to('password')
    ])
    email = TextField(
        _('Email address'),
        [required(),
         email(message=_('A valid email address is required'))])
    submit = SubmitField(_('Commit'))

    def validate_email(self, field):
        if g.db.users.find_one({"email": field.data}) is not None:
            raise ValidationError, _('This email is taken')
Beispiel #12
0
class SignupForm(Form):
    next = HiddenField()
    name = TextField(_('Username'), [required()])
    password = PasswordField(_('Password'),
                             [required(), length(min=6, max=16)])
    password_again = PasswordField(
        _('Password again'),
        [required(), length(min=6, max=16),
         equal_to('password')])
    email = TextField(
        _('Email address'),
        [required(),
         email(message=_('A valid email address is required.'))])
    submit = SubmitField(_('Sign up'))

    def validate_name(self, field):
        if User.query.filter_by(name=field.data).first() is not None:
            raise ValidationError, gettext('This username is taken')

    def validate_email(self, field):
        if User.query.filter_by(email=field.data).first() is not None:
            raise ValidationError, gettext('This email is taken')
Beispiel #13
0
class ChangePasswordForm(Form):
    """
    修改密码
    """
    password_old = PasswordField(
        _("Old Password"),
        validators=[required(message=_("Old password is required"))])

    password = PasswordField(
        _("New Password"),
        validators=[required(message=_("New Password is required"))])

    password_again = PasswordField(
        _("Password again"),
        validators=[equal_to("password", message=_("Passwords don't match"))])

    id = HiddenField()

    def validate_password_old(self, field):
        # 验证旧密码是否正确
        if not UserService.check_pwd_by_id(int(self.id.data), field.data):
            raise ValidationError, gettext("This old password is error")

    submit = SubmitField(_("Save"))
Beispiel #14
0
class SignupForm(Form):

    next = HiddenField()
    username = TextField(default='',
                         validators=[
                             required(message=u'用户名是必须的'),
                             regexp(RE_MATCH_UKEY,
                                    message=u'用户名只能包含英文,数字,小数点,下划线')
                         ])
    password = TextField(default='', validators=[required(message=u'密码不能为空')])
    repassword = TextField(
        default='', validators=[equal_to('password', message=u'两次输入的密码不相符')])
    email = TextField(
        default='',
        validators=[required(message=u'邮箱是必须的'),
                    email(message='u你的邮箱不合法')])

    def validate_username(self, field):
        if backend.is_username_exist(field.data.encode('utf-8')):
            raise ValidationError, u'用户名已经存在'

    def validate_email(self, field):
        if backend.is_email_exist(field.data.encode('utf-8')):
            raise ValidationError, u'邮箱已经存在'
Beispiel #15
0
class SignupForm(Form):
    next = HiddenField()

    first_name = TextField('First name',
                           [required('Your first name is required')])
    last_name = TextField('Last name',
                          [required('Your last name is required')])
    username = TextField(
        _('Username'),
        [required('Please enter a valid subdomain for your account')])
    business_name = TextField(_('Business name'),
                              [required('Please supply a business name')])
    business_type = SelectField(
        'Company type', [required('Please supply the type of company')])
    password = PasswordField(
        _('Password'),
        [required('Please enter a password'),
         length(min=6, max=16)])
    password_again = PasswordField(_('Password again'), [
        required('Please confirm your password'),
        length(min=6, max=16),
        equal_to('password')
    ])
    email_address = TextField(_('Email address'), [
        required('Your email address is required'),
        email(message=_('A valid email address is required'))
    ])
    country_id = SelectField('Country', [required('Please select a country')])
    plan_id = SelectField('Plan', [required('Please select a plan')])

    def __init__(self, formdata=None, obj=None, prefix='', **kwargs):
        super(SignupForm, self).__init__(formdata, obj, prefix, **kwargs)
        self.business_type.choices = self.get_company_type_options()
        self.country_id.choices = self.get_country_options()
        self.plan_id.choices = self.get_plan_options()

    def get_plan_options(self):
        """Get a list of plans"""
        choices = []
        for plan in Plan.query.all():
            choices.append((str(plan.id), plan.name))
        return choices

    def get_country_options(self):
        """Get options for country list"""
        choices = []
        countries = Country.query.all()
        for country in countries:
            choices.append((country.iso, country.printable_name))
        return choices

    def get_company_type_options(self):
        choices = []
        types = CompanyType.query.all()
        for t in types:
            choices.append((str(t.id), t.name))
        return choices

    def save(self):
        """Create a new user account"""

        user = User()
        user.username = self.username.data
        user.first_name = self.first_name.data
        user.last_name = self.last_name.data
        user.email_address = self.email_address.data
        user.password = self.password.data
        db.session.add(user)
        db.session.commit()

        company = Company()
        company.user_id = user.id
        company.name = self.business_name.data
        company.company_type_id = self.business_type.data
        company.country = self.country_id.data
        db.session.add(company)
        db.session.commit()

        subscription = Subscription()
        subscription.user_id = user.id
        subscription.plan_id = self.plan_id.data
        subscription.start_date = datetime.now()
        subscription.end_date = None
        db.session.add(subscription)
        db.session.commit()

        return user, subscription

    def validate_username(self, field):
        if User.query.filter_by(username=field.data).first() is not None:
            raise ValidationError, gettext('This subdomain is already taken')

    def validate_email_address(self, field):
        if User.query.filter_by(email_address=field.data).first() is not None:
            raise ValidationError, gettext('This email address is taken')
Beispiel #16
0
class SignupForm(Form):
    """
    注册的表单
    """
    username = TextField(
        _("Username"),
        #validators=[length(min=3, max=20, message=_("Length range: 3 - 20")), is_username])
        validators=[length(min=2, max=20, message=_("Length range: 3 - 20"))])

    password = PasswordField(
        _("Password"), validators=[required(message=_("Password required"))])

    password_again = PasswordField(
        _("Password again"),
        validators=[equal_to("password", message=_("Passwords don't match"))])

    email = TextField(_("Login email address"),
                      validators=[
                          required(message=_("Email address required")),
                          email(message=_("A valid email address is required"))
                      ])

    gender = SelectField(_("user.gender"),
                         description=u'性别:0-保密、1-男、2-女',
                         choices=[('0', u'保密'), ('1', u'男'), ('2', u'女')],
                         default=1,
                         validators=[
                             required(message=_("gender is required")),
                         ])

    recaptcha = TextField(
        _("Recaptcha"),
        validators=[required(message=_("You must provide an captcha"))])

    next = HiddenField()

    submit = SubmitField(_("Signup"))

    def validate_username(self, field):
        # todo
        # 用户名不允许重复
        if UserService.count_by_username(field.data) > 0:
            raise ValidationError, gettext("This username is taken")

        # 不能有敏感词、保留词
        if not WordReservedService.word_allowed(field.data):
            raise ValidationError, gettext("This username is taken")

        if not WordForbiddenService.word_allowed(field.data):
            raise ValidationError, gettext("This username is taken")

    def validate_nickname(self, field):
        #        # 昵称不允许重复
        #        if not UserService.count_by_nickname(field.data):
        #            raise ValidationError, gettext("This nickname is taken")

        if not WordReservedService.word_allowed(field.data):
            raise ValidationError, gettext("This nickname is taken")

        if not WordForbiddenService.word_allowed(field.data):
            raise ValidationError, gettext("This nickname is taken")

    def validate_email(self, field):
        # email不允许重复
        if UserService.count_by_email(field.data) > 0:
            raise ValidationError, gettext("This email is taken")

    def validate_recaptcha(self, field):
        if 'need_verify' not in session or not session['need_verify']:
            return

        if 'verify' not in session or session['verify'] != str(
                field.data).upper():
            raise ValidationError, gettext("This captcha is not matching")
Beispiel #17
0
class PasswordSettingsForm(Form):

    old_password = TextField(validators=[required(message='原有密码不能为空')])
    password = TextField(validators=[required(message='新密码不能为空')])
    repeat_password = TextField(
        validators=[equal_to("password", message='两次输入的新密码不匹配')])