class ExtendedRegisterForm(RegisterForm): first_name = StringField('Nombre', [Required()]) last_name = StringField('Apellidos', [Required()]) telegram = StringField('Telegram', [ validators.Optional(), validators.Regexp( '[a-zA-Z0-9_-]{5,}', message=u'Introduzca un usuario válido de Telegram sin @') ]) year = SelectField('Curso', [Required()], choices=[('1', 'Primero'), ('2', 'Segundo'), ('3', 'Tercero'), ('4', 'Cuarto')]) school = SelectField( 'Escuela', choices=json_choices_centros('./static/json/centros.json'), id='select_school', default=59) degree = SelectField( 'Plan de Estudios', choices=json_choices_planes('./static/json/planes.json'), id='select_degree', default='59EC') dni = StringField( 'DNI o NIE', validators=[ unique_user_dni, validators.Regexp( '[0-9A-Z][0-9]{7}[A-Z]', message=u'Introduzca un DNI o NIE válido en mayúsculas.'), Required() ]) self_edit = HiddenField()
class LoginForm(SecurityLoginForm): username = StringField( get_form_field_label("username"), validators=[], ) jwt = StringField( get_form_field_label("jwt"), validators=[], ) def validate(self): username = self.data.get('username', '') password = self.data.get('password', '') ip = get_ip() err, jwt = validate_user(username, password, ip) if err: return False err, result = pyutil_mongo.db_find_one('user', {'user_id': username}, ["_id"]) if err: return False the_id = str(result.get("_id", '')) self.user = User() self.user.id = the_id self.user.is_active = True self.user.jwt = jwt return True
class ResetEmailForOauthForm(SendConfirmationForm): origin_email = StringField('Current Email(ReadOnly', render_kw={'readonly': True}, validators=[valid_user_email_for_oauth]) email = StringField('New Email', validators=[ email_required, email_validator, unique_user_email, unique_email ]) password = PasswordField('Password(optional)')
class ResetEmailForOauthForm(SendConfirmationForm): origin_email = StringField('当前邮箱(只读)', render_kw={'readonly': True}, validators=[valid_user_email_fro_oauth]) email = StringField('新邮箱', validators=[ email_required, email_validator, unique_user_email, unique_email ]) password = PasswordField('账户密码(可选)')
class ExtendedRegisterForm(RegisterForm): name = StringField( '名字', validators=[name_required, name_length, unique_user_name]) email = StringField( '邮箱', validators=[email_required, email_validator, unique_user_email]) password = PasswordField('密码', validators=[password_required]) password_confirm = PasswordField( '密码确认', validators=[ EqualTo('password', message='RETYPE_PASSWORD_MISMATCH'), password_required ])
class ExtendedRegisterForm(RegisterForm): name = StringField( "名字", validators=[name_required, name_length, unique_user_name]) email = StringField( "邮箱", validators=[email_required, email_validator, unique_user_email]) password = PasswordField("密码", validators=[password_required]) password_confirm = PasswordField( "确认密码", validators=[ EqualTo("password", message="RETYPE_PASSWORD_MISMATCH"), password_required, ], )
class ToolForm(Form): self_edit = HiddenField() name = StringField('Nombre', validators=[unique_tool_name, Required()]) description = TextAreaField('Descripcion') location = StringField('Lugar', [Required()]) manual = StringField('Manual') documentation = StringField(u'Documentación') image = FileField(u'Fotografía', [is_image(u'Solo se permiten subir imágenes')]) maintainer = SelectField('Maintainer', choices=choices_users(), id='select_maintainer', validators=[Required()])
class ExtendedRegisterForm(ConfirmRegisterForm): username = StringField('Username', validators=[ Required(message='EMAIL_NOT_PROVIDED'), unique_identity_attribute ]) email = None
class MyForgotPasswordForm(ForgotPasswordForm): email = StringField( 'My Forgot Email Address Field', validators=[ email_required, email_validator, valid_user_email])
class ExtendedRegisterForm(RegisterForm): name = StringField('Name', [Required()]) api_key = HiddenField('api_key') def __init__(self, *args, **kwargs): super(ExtendedRegisterForm, self).__init__(*args, **kwargs) self.api_key.data = uuid.uuid4().hex
class ExtendedLoginForm(LoginForm): # This is a hack--we're just using email to run through # default validation. The validation function looks up # users based on configured auth methods, rather than # field name email = StringField('Username', validators=[Required(message='EMAIL_NOT_PROVIDED')])
class ExtendedRegisterForm(RegisterForm): username = StringField('username', [Required()]) email = StringField('email', [Required()]) def validate(self): success = True if not super(ExtendedRegisterForm, self).validate(): success = False if db.session.query(User).filter( User.username == self.username.data.strip()).first(): self.username.errors.append("Username already taken") success = False if db.session.query(User).filter( User.email == self.email.data.strip()).first(): self.email.errors.append("Email address already taken") success = False return success
class ExtendedLoginForm(LoginForm): email = StringField(_l('Email or Username'), validators=[Required('Email required')]) password = PasswordField(_l('Password'), validators=[Required('Password required')]) remember = BooleanField(_l('Remember Me')) submit = SubmitField(_l('Login'))
class LoginForm(SecurityLoginForm): """customized login form. validating with backend. Attributes: jwt (TYPE): Description user (TYPE): Description username (TYPE): Description """ username = StringField( get_form_field_label("username"), validators=[], ) jwt = StringField( get_form_field_label("jwt"), validators=[], ) def validate(self): """validate user. Returns: TYPE: Description """ username = self.data.get('username', '') password = self.data.get('password', '') err, jwt = validate_user(username, password) if err: return False err, result = pyutil_mongo.db_find_one('user', {'user_id': username}, ["_id"]) if err: return False the_id = str(result.get("_id", '')) self.user = User() self.user.id = the_id self.user.is_active = True self.user.jwt = jwt return True
class ExtendedConfirmRegisterForm(ConfirmRegisterForm): email = StringField(_l('Email address'), validators=[Required('Email required')]) agree = BooleanField( _l("I have read and agree the <a href='static/termsofuse.html'>Terms of use</a>" )) password = PasswordField(_l('Password'), validators=[Required('Password required')]) submit = SubmitField(_l('Register')) def validate_agree(self, field): if not field.data: raise ValidationError( _('Please indicate that you have read and agree to the Terms and Conditions' ), 'error') else: return True def validate_email(self, field): allowed_email = UserAdmin.find_allowed_email(field.data) if allowed_email: if allowed_email.confirmed_at != None: raise ValidationError( _('Email address has been confirmed earlier')) elif (allowed_email.creator == 'system') and not allowed_email.approved: raise ValidationError( _('Email address has not been approved yet')) # if (allowed_email.creator != 'system') or allowed_email.approved: else: return True raise ValidationError(_('Email address must be an authorized one')) def validate_username(self, field): user = shareds.user_datastore.get_user(field.data) if user: raise ValidationError(_('Username has been reserved already')) username = StringField(_l('Username'), validators=[Required('Username required')]) name = StringField(_l('Name'), validators=[Required('Name required')]) language = SelectField(_l('Language'), choices=shareds.app.config.get('LANGUAGES'), validators=[Required(_('Language required'))])
class ResetEmailForm(SendConfirmationForm): origin_email = StringField( 'Current Email(ReadOnly)', render_kw={'readonly': True}, validators=[email_required, email_validator, valid_user_email]) email = StringField('New Email', validators=[ email_required, email_validator, unique_user_email, unique_email ]) password = PasswordField('Password', validators=[password_required]) def validate(self): if not super(SendConfirmationForm, self).validate(): return False if not verify_and_update_password(self.password.data, current_user): self.password.errors.append('Invalid password') return False return True
class VotingForm(Form): name = StringField(u'Nombre', validators=[Required()]) description = TextAreaField(u'Descripción') start_date = DateField(u'Fecha de inicio', validators=[Required()], default=date.today(), format='%Y-%m-%d') end_date = DateField(u'Fecha de finalización', validators=[date_is_older, Required()], default=date.today() + timedelta(days=1), format='%Y-%m-%d') options = TextAreaField(u'Opciones', validators=[Required()])
class WorkshopForm(Form): name = StringField('Nombre', validators=[Required()]) description = TextAreaField(u'Descripción') location = StringField('Lugar', [Required()]) instructor = SelectField('Instructor', choices=choices_users(), id='select_instructor', validators=[Required()]) date = DateField('Fecha', validators=[Required()], default=date.today(), format='%Y-%m-%d') participants = IntegerField('Participantes') tooling = SelectField('Habilita', coerce=int, choices=choices_tools(), id='select_tool', default=0) members_only = BooleanField('Solo miembros') image = FileField(u'Fotografía', [is_image(u'Solo se permiten subir imágenes')])
class CustomRegisterForm(RegisterForm): username = StringField('Username', [Required()]) def validate(self): if user_datastore.find_user(username=self.username.data): self.username.errors = ["Username already taken"] return False if not super(CustomRegisterForm, self).validate(): return False return True
class ExtendedConfirmRegisterForm(ConfirmRegisterForm): username = StringField('username', [validators.Regexp("[^' ']+"), Required()]) email = StringField('email', [Required()]) if globalvars.recaptchaEnabled is True: recaptcha = RecaptchaField() def validate(self): success = True if not super(ExtendedConfirmRegisterForm, self).validate(): success = False if db.session.query(User).filter( User.username == self.username.data.strip()).first(): self.username.errors.append("Username already taken") success = False if db.session.query(User).filter( User.email == self.email.data.strip()).first(): self.email.errors.append("Email address already taken") success = False return success
class ExtendedRegistrationForm(RegisterForm): """ Additional information for the registration form """ username = StringField(None, [ Required(), Length(min=6, max=20, message="Username musty be between 6 and 20 characters.") ]) def validate_username(self, field): """ This will be called by Flask Security when the user registers their account. It will be check to make sure that the username is valid because it's not a typical Flask-Security field. :param field: object with the username field data sent from form submission :return: """ # Make sure that the username is of proper length. username_length = str().count(field.data.strip()) if not username_length >= 6 and not username_length < 20: return False # Make sure that the username is not empty if field.data.strip() == '': field.username.errors.append( unicode(utils.option("REGISTER_USERNAME_EMPTY_MSG"))) return False # Make sure that the username is unique user = db.session.query(User).filter_by(username=field.data).first() if user is not None: # The username is already taken by another user (the query above came back with a result) self.username.errors.append( unicode(utils.option("REGISTER_USERNAME_UNAVAILABLE_MSG"))) return False return True
class MyRegisterForm(RegisterForm): email = StringField("My Register Email Address Field")
class MyLoginForm(LoginForm): email = StringField("My Login Email Address Field")
class MyLoginForm(LoginForm): myfield = StringField("My Custom Field", validators=[Required(message="hi")])
class MyPasswordlessLoginForm(PasswordlessLoginForm): email = StringField("My Passwordless Email Address Field")
class MySendConfirmationForm(SendConfirmationForm): email = StringField("My Send Confirmation Email Address Field")
class MyResetPasswordForm(ResetPasswordForm): password = StringField("My Reset Password Field")
class MyRegisterForm(RegisterForm): additional_field = StringField("additional_field")
class MyRegisterForm(ConfirmRegisterForm): username = StringField("Username")
class ExtendedRegisterForm(RegisterForm): username = StringField('Username', [Required()])