示例#1
0
class UserShellForm(Form):
    # Caller of form will add choices based on settings.
    shell = SelectField("Shell", [
        validators.DataRequired(),
    ])
示例#2
0
文件: netpop.py 项目: ashoover/NetPop
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')
示例#3
0
class LoginForm(Form):
	email=StringField('Email: ',[validators.Length(min=7,max=100)])
	password=PasswordField('Password', [
		validators.DataRequired()])
示例#4
0
class LoginForm(FlaskForm):
    username = StringField('email',
                           [validators.DataRequired(),
                            validators.Email()])
    password = PasswordField('password', [validators.DataRequired()])
示例#5
0
class sqlQueryForm(FlaskForm):
    query = StringField('query', [validators.DataRequired()])
示例#6
0
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()])
示例#7
0
class DeleteSubjectCombo(Form):
    year = TextField('Year', [validators.DataRequired()])
示例#8
0
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)
示例#9
0
class CallBackForm(FlaskForm):
    name = StringField('First Name', [validators.DataRequired()])
    phonenumber = StringField('Phone Number', [validators.DataRequired()])
    submit = SubmitField('Записаться на консультацию')
示例#10
0
class bmi(Form):
    weight = StringField('Weight:', [validators.DataRequired()])
    height = StringField('Height:', [validators.DataRequired()])
示例#11
0
class LoginForm(Form):
    username = StringField('Username', [validators.DataRequired(), validators.Length(min=11, max=11)])
    password = PasswordField('Password', [validators.DataRequired(), validators.Length(min=8)])
示例#12
0
class PublicKeyForm(Form):
    public_key = TextAreaField("Public Key", [
        validators.DataRequired(),
    ])
示例#13
0
class ServiceAccountEnableForm(Form):
    owner = SelectField("Owner", [
        validators.Length(min=3, max=constants.MAX_NAME_LENGTH),
        validators.DataRequired(),
        ValidateRegex(constants.NAME_VALIDATION),
    ])
示例#14
0
class PublicKeyAddTagForm(Form):
    tagname = SelectField("Tag", [
        validators.DataRequired(),
    ],
                          choices=[["", "(select one)"]],
                          default="")
示例#15
0
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()]
示例#16
0
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
示例#17
0
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()]
示例#18
0
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
示例#19
0
class Search(Form):
    matricNo = TextField('Matriculation Number', [validators.DataRequired()])
示例#20
0
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")
示例#21
0
class UserForm(FlaskForm):
    email = StringField('email',
                        [validators.DataRequired(),
                         validators.Email()])
    password = PasswordField('password', [validators.DataRequired()])
示例#22
0
class CommentForm(Form):
    body = TextAreaField("Type your comment here...", validators=[validators.DataRequired()])
    submit = SubmitField("Post Comment")
示例#23
0
class RegisterForm(FlaskForm):
    username = StringField('email',
                           [validators.DataRequired(),
                            validators.Email()])
    password1 = PasswordField('password', [validators.DataRequired()])
    password2 = PasswordField('password', [validators.DataRequired()])
示例#24
0
class LoginForm(Form):
    email_address = StringField(
        'Email Address',
        [validators.Length(min=6, max=100),
         validators.DataRequired()])
    password = PasswordField('Password', [validators.InputRequired()])
示例#25
0
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')
示例#26
0
class MessageForm(Form):
    author = StringField('Nombre', validators=[validators.DataRequired()])
    body = TextAreaField('Mensaje', validators=[validators.DataRequired()])
示例#27
0
class ReviewsForm(Form):
	review=TextAreaField('Review: ', [
		validators.DataRequired()])
示例#28
0
文件: forms.py 项目: sh4t/realms-wiki
class LoginForm(Form):
    email = StringField('Email', [validators.DataRequired()])
    password = PasswordField('Password', [validators.DataRequired()])
示例#29
0
class AddHotel(Form):
	name=StringField('Name: ',[validators.Length(min=2,max=100)])
	details=TextAreaField('Details: ', [
		validators.DataRequired()])
示例#30
0
class UserTokenForm(Form):
    name = StringField("Token name", [
        validators.DataRequired(),
        validators.Length(min=1, max=16),
        ValidateRegex(constants.TOKEN_NAME_VALIDATION),
    ])