class UserShellForm(Form): # Caller of form will add choices based on settings. shell = SelectField("Shell", [ validators.DataRequired(), ])
class RegistrationForm(Form): username = StringField('Username', [validators.Length(min=4, max=20)]) email = StringField('Email Address', [validators.Length(min=6, max=50)]) password = PasswordField('Password', [validators.DataRequired(), validators.EqualTo('confirm', message='Passwords do not match.')]) confirm = PasswordField('Confirm Password')
class LoginForm(Form): email=StringField('Email: ',[validators.Length(min=7,max=100)]) password=PasswordField('Password', [ validators.DataRequired()])
class LoginForm(FlaskForm): username = StringField('email', [validators.DataRequired(), validators.Email()]) password = PasswordField('password', [validators.DataRequired()])
class sqlQueryForm(FlaskForm): query = StringField('query', [validators.DataRequired()])
class RegistrationUpdate(Form): matricNo = TextField('Matriculation Number', [validators.DataRequired()]) surname = TextField('Surname', [validators.DataRequired()]) firstname = TextField('First name', [validators.DataRequired()]) year = TextField('Year', [validators.DataRequired()])
class DeleteSubjectCombo(Form): year = TextField('Year', [validators.DataRequired()])
class UserDBModelView(UserModelView): """ View that add DB specifics to User view. Override to implement your own custom view. Then override userdbmodelview property on SecurityManager """ add_form_extra_fields = { "password": PasswordField( lazy_gettext("Password"), description=lazy_gettext( "Please use a good password policy," " this application does not check this for you"), validators=[validators.DataRequired()], widget=BS3PasswordFieldWidget(), ), "conf_password": PasswordField( lazy_gettext("Confirm Password"), description=lazy_gettext( "Please rewrite the user's password to confirm"), validators=[ EqualTo("password", message=lazy_gettext("Passwords must match")) ], widget=BS3PasswordFieldWidget(), ), } add_columns = [ "first_name", "last_name", "username", "active", "email", "roles", "password", "conf_password", ] @expose("/show/<pk>", methods=["GET"]) @has_access def show(self, pk): actions = dict() actions["resetpasswords"] = self.actions.get("resetpasswords") item = self.datamodel.get(pk, self._base_filters) if not item: abort(404) widgets = self._get_show_widget(pk, item, actions=actions) self.update_redirect() return self.render_template( self.show_template, pk=pk, title=self.show_title, widgets=widgets, appbuilder=self.appbuilder, related_views=self._related_views, ) @expose("/userinfo/") @has_access def userinfo(self): actions = dict() actions["resetmypassword"] = self.actions.get("resetmypassword") actions["userinfoedit"] = self.actions.get("userinfoedit") item = self.datamodel.get(g.user.id, self._base_filters) widgets = self._get_show_widget( g.user.id, item, actions=actions, show_fieldsets=self.user_show_fieldsets) self.update_redirect() return self.render_template( self.show_template, title=self.user_info_title, widgets=widgets, appbuilder=self.appbuilder, ) @action( "resetmypassword", lazy_gettext("Reset my password"), "", "fa-lock", multiple=False, ) def resetmypassword(self, item): return redirect( url_for(self.appbuilder.sm.resetmypasswordview.__name__ + ".this_form_get")) @action("resetpasswords", lazy_gettext("Reset Password"), "", "fa-lock", multiple=False) def resetpasswords(self, item): return redirect( url_for( self.appbuilder.sm.resetpasswordview.__name__ + ".this_form_get", pk=item.id, )) def pre_update(self, item): item.changed_on = datetime.datetime.now() item.changed_by_fk = g.user.id def pre_add(self, item): item.password = generate_password_hash(item.password)
class CallBackForm(FlaskForm): name = StringField('First Name', [validators.DataRequired()]) phonenumber = StringField('Phone Number', [validators.DataRequired()]) submit = SubmitField('Записаться на консультацию')
class bmi(Form): weight = StringField('Weight:', [validators.DataRequired()]) height = StringField('Height:', [validators.DataRequired()])
class LoginForm(Form): username = StringField('Username', [validators.DataRequired(), validators.Length(min=11, max=11)]) password = PasswordField('Password', [validators.DataRequired(), validators.Length(min=8)])
class PublicKeyForm(Form): public_key = TextAreaField("Public Key", [ validators.DataRequired(), ])
class ServiceAccountEnableForm(Form): owner = SelectField("Owner", [ validators.Length(min=3, max=constants.MAX_NAME_LENGTH), validators.DataRequired(), ValidateRegex(constants.NAME_VALIDATION), ])
class PublicKeyAddTagForm(Form): tagname = SelectField("Tag", [ validators.DataRequired(), ], choices=[["", "(select one)"]], default="")
class ProjectRegistrationForm(Form): def validate_url_in_form(form, field): if not field.data.startswith("http"): raise ValidationError('The url is not valid') """ class Meta: csrf = True csrf_class = SessionCSRF csrf_secret = b'REPLACE ME WITH A SECRET' csrf_time_limit = timedelta(minutes=20) # put this in the html form: {{ form.csrf_token }} """ # keys = [("profile", ["title", # "abstract", # "intellectual_merit", # "broader_impact", # "use_of_fg", # "scale_of_use", # # "categories", # # "keywords", # # "primary_discipline", # "orientation", # "contact", # "url", # "comment", # # "active", # # "projectid", # # "lead", # # "managers", # # "members", # # "alumnis", # # "grant_orgnization", # # "grant_id", # # "grant_url", # "results"]), # ("agreements", ["agreement_use", # "agreement_slides", # "agreement_support", # "agreement_software", # "agreement_documentation"]), # ("other", ["comments", # "join_open", # "join_notification", # "resources_services", # # "resources_software", # "resources_clusters", # "resources_provision" # ]) # ] keys = [\ "title", "category", "keywords", "contact", "primary_discipline" "orientation", "abstract", "intellectual_merit", "broader_impact", "use_of_fg", "scale_of_use", "url", "comment", "results", "agreement_use", "agreement_slides", "agreement_support", "agreement_software", "agreement_documentation", "comments", "join_open", "join_notification", "resources_services", # "resources_software", "resources_clusters", "resources_provision", "grant_organization", "grant_id", "grant_url", "loc_name", "loc_street", "loc_additional", "loc_state", "loc_country"] profile_keys = [\ "title"] vocab_keys = [\ "category", "keywords"] project_contact_keys = [\ "lead", "managers", "members", "alumni", "contact"] project_details_keys = [\ "orientation", "primary_discipline", "abstract", "intellectual_merit", "broader_impact", "url", # "active", # "projectid", # "lead", # "managers", # "members", # "alumnis", "results"] agreements_keys= [\ "agreement_use", "agreement_slides", "agreement_support", "agreement_software", "agreement_documentation"] grant_keys = [\ "grant_organization", "grant_id", "grant_url" ] loc_keys = [\ "loc_name", "loc_street", "loc_additional", "loc_state", "loc_country"] resource_keys = [\ "resources_services", # "resources_software", "resources_clusters", "resources_provision", "comment", "use_of_fg", "scale_of_use"] other_keys = [\ "comments"] membership_keys = [\ "join_open", "join_notification" ] title = StringField('Title') category = RadioSelectField('Project Category', choices=[('None','None'),('Computer Science','Computer Science'),\ ('Education','Education'),\ ('Interoperability','Interoperability'),\ ('Life Sciences','Life Sciences'),\ ('Non Life Sciences','Non Life Sciences'),\ ('Technology Development','Technology Development'),\ ('Technology Evaluation','Technology Evaluation')]) keywords = StringField('Project Keywords') abstract = TextAreaField('Abstract') intellectual_merit = TextAreaField('Intellectual merit') broader_impact = TextAreaField('Broader impact') use_of_fg = TextAreaField('Use of Future Systems') scale_of_use = TextAreaField('Scale of use') categories = StringField('Categories') # orientation = StringField('Orientation') orientation = RadioSelectField('Orientation', choices=[('research','Research'),('education','Education'),\ ('industry','Industry'),('government','Government')]) # primary_discipline = RadioSelectField('Primary discipline', choices=discipline_choices) primary_discipline = RadioSelectField('Primary discipline') primary_discipline.choices = [c for c in disciplines_list()] url = StringField('URL', [validators.Length(min=6, max=50), validate_url_in_form]) comment = TextAreaField('Comment') active = BooleanField('Active') projectid = StringField('Projectid') contact = StringField('Contact') lead = StringField('Project Lead') managers = TextAreaField('Project Managers') members = TextAreaField('Project Members') alumni = TextAreaField('Project Alumni') grant_organization = StringField('Grant Organization') grant_id = StringField('Grant ID') grant_url = StringField('Grant URL') results = TextAreaField('Results') agreement_use = BooleanField('NSF Agreement to use Future Systems') agreement_slides = BooleanField('Slide Collection') agreement_support = BooleanField('Support') agreement_software = BooleanField('Software Contributions') agreement_documentation = BooleanField('Documentation Contributions') agreement_images = BooleanField('Images') comments = TextAreaField('Comments') join_open = BooleanField('Allow users to request to join') join_notification = BooleanField( 'Send an email notification when a user joins') resources_services = MultiCheckboxField( 'Resource Services', choices=get_choices_for_form(ProjectSERVICES)) # resources_software = MultiCheckboxField('resources_software', # choices=get_choices_for_form(ProjectSOFTWARE)) resources_clusters = MultiCheckboxField( 'Resource Clusters', choices=get_choices_for_form(ProjectCLUSTERS)) resources_provision = MultiCheckboxField( 'Resource Provisioning', choices=get_choices_for_form(ProjectPROVISIONING)) loc_name = StringField('Name') loc_street = StringField('Street') loc_additional = StringField('Additional') # loc_state= RadioSelectField("State",[validators.DataRequired()], choices=state_choices) # loc_country = RadioSelectField("Country", [validators.DataRequired()], choices=country_choices) loc_country = RadioSelectField("Country", [validators.DataRequired()]) loc_state = RadioSelectField("State", [validators.DataRequired()]) loc_country.choices = [c for c in country_list()] loc_state.choices = [c for c in states_list()]
class LoginForm(FlaskForm): """Login form.""" next = HiddenField() # for login.html reg_next = HiddenField() # for login_or_register.html username = StringField(_('Username'), validators=[ validators.DataRequired( _('Username is required')), ]) email = StringField(_('Email'), validators=[ validators.DataRequired(_('Email is required')), validators.Email(_('Invalid Email')) ]) password = PasswordField(_('Password'), validators=[ validators.DataRequired( _('Password is required')), ]) remember_me = BooleanField(_('Remember me')) submit = SubmitField(_('Sign in')) def __init__(self, *args, **kwargs): super(LoginForm, self).__init__(*args, **kwargs) user_manager = current_app.user_manager if user_manager.USER_ENABLE_USERNAME and user_manager.USER_ENABLE_EMAIL: # Renamed 'Username' label to 'Username or Email' self.username.label.text = _('Username or Email') def validate(self): # Remove fields depending on configuration user_manager = current_app.user_manager if user_manager.USER_ENABLE_USERNAME: delattr(self, 'email') else: delattr(self, 'username') # Validate field-validators if not super(LoginForm, self).validate(): return False # Find user by username and/or email user = None user_email = None if user_manager.USER_ENABLE_USERNAME: # Find user by username user = user_manager.db_manager.find_user_by_username( self.username.data) # Find user by email address (username field) if not user and user_manager.USER_ENABLE_EMAIL: user, user_email = user_manager.db_manager.get_user_and_user_email_by_email( self.username.data) else: # Find user by email address (email field) user, user_email = user_manager.db_manager.get_user_and_user_email_by_email( self.email.data) if user: # Handle successful authentication if user_manager.verify_password(self.password.data, user.password): return True # Successful authentication # Send user_password_failed signal else: signals.user_password_failed.send( current_app._get_current_object(), user=user) # Handle unsuccessful authentication # Email, Username or Email/Username depending on settings if user_manager.USER_ENABLE_USERNAME and user_manager.USER_ENABLE_EMAIL: username_or_email_field = self.username username_or_email_text = (_('Username/Email')) show_does_not_exist = user_manager.USER_SHOW_EMAIL_DOES_NOT_EXIST or user_manager.USER_SHOW_USERNAME_DOES_NOT_EXIST elif user_manager.USER_ENABLE_USERNAME: username_or_email_field = self.username username_or_email_text = (_('Username')) show_does_not_exist = user_manager.USER_SHOW_USERNAME_DOES_NOT_EXIST else: username_or_email_field = self.email username_or_email_text = (_('Email')) show_does_not_exist = user_manager.USER_SHOW_EMAIL_DOES_NOT_EXIST # Show 'username/email does not exist' or 'incorrect password' error message if show_does_not_exist: if not user: message = _('%(username_or_email)s does not exist', username_or_email=username_or_email_text) username_or_email_field.errors.append(message) else: self.password.errors.append(_('Incorrect Password')) # Always show 'incorrect username/email or password' error message for additional security else: message = _('Incorrect %(username_or_email)s and/or Password', username_or_email=username_or_email_text) username_or_email_field.errors.append(message) self.password.errors.append(message) return False # Unsuccessful authentication
class UserRegistrationForm(Form): """ class Meta: csrf = True csrf_class = SessionCSRF csrf_secret = b'REPLACE ME WITH A SECRET' csrf_time_limit = timedelta(minutes=20) # put this in the html form: {{ form.csrf_token }} """ keys = [ "username", "email", "password", "confirm", "title", "firstname", "lastname", "phone", "url", "citizenship", "bio", "institution", "institutionrole", "department", "address", "advisor", "country", "confirm" ] organization_keys = \ ["institution", "institutionrole", "department", "address", "advisor", "country"] profile_keys = \ ["username", "email", "password", "confirm", "title", "firstname", "lastname", "phone", "url", "citizenship", "bio"] def validate_email_in_form(form, field): if ("@" not in field.data) or ("." not in field.data): raise ValidationError('The email address is not valid') for domain in exclude_email_domains: if domain in field.data: raise ValidationError( 'Email form the domain {0} are not alloed'.format( field.data)) get_mongo_db("manage", DBConnFactory.TYPE_MONGOENGINE) users = Users() if not users.validate_email(field.data): raise ValidationError('A user with this email already exists') def validate_username_in_form(form, field): if not re.match("^[a-z0-9]*$", field.data): raise ValidationError( 'Only lower case characters a-z and numbers 0-9 allowed.') if not field.data.islower(): raise ValidationError('The username must be lower case') get_mongo_db("manage", DBConnFactory.TYPE_MONGOENGINE) username = MongoUser.objects(username=field.data) if username.count() > 0: users = Users() proposal = users.get_unique_username(field.data) raise ValidationError( 'A user with name already exists. Suggestion: {0}'.format( proposal)) username = StringField( 'Username', [validators.Length(min=6, max=25), validate_username_in_form]) title = StringField('Title', [validators.Length(min=2, max=40)]) firstname = StringField('Firstname', [validators.Length(min=1, max=35)]) lastname = StringField('Lastname', [validators.Length(min=1, max=35)]) email = StringField( 'Email', [validators.Length(min=6, max=35), validate_email_in_form]) phone = StringField('Phone', [validators.Length(min=6, max=35)]) url = StringField('URL') # citizenship = RadioSelectField("Citizenship", [validators.DataRequired()], choices=all_country_choices) citizenship = RadioSelectField("Citizenship", [validators.DataRequired()]) institution = TextAreaField('Institution') institutionrole = RadioSelectField("Institution Role", [validators.DataRequired()], choices=institutionrole_choices) # institutionrole = StringField('Institution role') department = TextAreaField('Department') address = TextAreaField( 'Address', [validators.DataRequired(message="Address required")]) # country = RadioSelectField("Country", [validators.DataRequired()], choices=country_choices) country = RadioSelectField("Country", [validators.DataRequired()]) advisor = TextAreaField('Advisor') password = PasswordField('New Password', [ validators.DataRequired(), validators.EqualTo('confirm', message='Passwords must match') ]) confirm = PasswordField('Confirm Password') # agreement = BooleanField('I accept the usage agreement', [validators.Required()]) bio = TextAreaField('Bio', [validators.DataRequired()]) citizenship.choices = [c for c in country_list()] country.choices = [c for c in country_list()]
class RegisterForm(FlaskForm): """Register new user form.""" password_validator_added = False next = HiddenField() # for login_or_register.html reg_next = HiddenField() # for register.html username = StringField(_('Username'), validators=[ validators.DataRequired( _('Username is required')), username_validator, unique_username_validator ]) email = StringField(_('Email'), validators=[ validators.DataRequired(_('Email is required')), validators.Email(_('Invalid Email')), unique_email_validator ]) password = PasswordField(_('Password'), validators=[ validators.DataRequired( _('Password is required')), password_validator ]) retype_password = PasswordField( _('Retype Password'), validators=[ validators.EqualTo( 'password', message=_('Password and Retype Password did not match')) ]) invite_token = HiddenField(_('Token')) submit = SubmitField(_('Register')) def validate(self): # remove certain form fields depending on user manager config user_manager = current_app.user_manager if not user_manager.USER_ENABLE_USERNAME: delattr(self, 'username') if not user_manager.USER_ENABLE_EMAIL: delattr(self, 'email') if not user_manager.USER_REQUIRE_RETYPE_PASSWORD: delattr(self, 'retype_password') # # Add custom username validator if needed # if user_manager.USER_ENABLE_USERNAME: # has_been_added = False # for v in self.username.validators: # if v==user_manager.username_validator: # has_been_added = True # if not has_been_added: # self.username.validators.append(user_manager.username_validator) # # Add custom password validator if needed # has_been_added = False # for v in self.password.validators: # if v==user_manager.password_validator: # has_been_added = True # if not has_been_added: # self.password.validators.append(user_manager.password_validator) # Validate field-validators if not super(RegisterForm, self).validate(): return False # All is well return True
class Search(Form): matricNo = TextField('Matriculation Number', [validators.DataRequired()])
class PostForm(Form): body = HiddenField("Type Blog content here.", validators=[validators.DataRequired()]) title = TextField("Put your Blog post title here...", validators=[validators.DataRequired()]) submit = SubmitField("Submit")
class UserForm(FlaskForm): email = StringField('email', [validators.DataRequired(), validators.Email()]) password = PasswordField('password', [validators.DataRequired()])
class CommentForm(Form): body = TextAreaField("Type your comment here...", validators=[validators.DataRequired()]) submit = SubmitField("Post Comment")
class RegisterForm(FlaskForm): username = StringField('email', [validators.DataRequired(), validators.Email()]) password1 = PasswordField('password', [validators.DataRequired()]) password2 = PasswordField('password', [validators.DataRequired()])
class LoginForm(Form): email_address = StringField( 'Email Address', [validators.Length(min=6, max=100), validators.DataRequired()]) password = PasswordField('Password', [validators.InputRequired()])
class ContactForm(Form): name = StringField('Your Name:', [validators.DataRequired()]) email = StringField('Your e-mail address:', [validators.DataRequired(), validators.Email('*****@*****.**')]) message = TextAreaField('Your message:', [validators.DataRequired()]) submit = SubmitField('Send Message')
class MessageForm(Form): author = StringField('Nombre', validators=[validators.DataRequired()]) body = TextAreaField('Mensaje', validators=[validators.DataRequired()])
class ReviewsForm(Form): review=TextAreaField('Review: ', [ validators.DataRequired()])
class LoginForm(Form): email = StringField('Email', [validators.DataRequired()]) password = PasswordField('Password', [validators.DataRequired()])
class AddHotel(Form): name=StringField('Name: ',[validators.Length(min=2,max=100)]) details=TextAreaField('Details: ', [ validators.DataRequired()])
class UserTokenForm(Form): name = StringField("Token name", [ validators.DataRequired(), validators.Length(min=1, max=16), ValidateRegex(constants.TOKEN_NAME_VALIDATION), ])