Beispiel #1
0
    cves = fields.StringField('CVE(s)', validators=[
        validators.Regexp(
            '^CVE-\d+-\d+(\s*,\s*CVE-\d+-\d+)*$',
            message='Invalid CVE. Multiple CVEs can seperated with commas.'
        ),
        validators.required(),
    ])
    archive = fields.FileField('Archive')


# Dynamic creation of submission forms
SUBMISSION_FORMS = {}

# Validator of archive vs coordinate based submission
_validator = RequiredIfNoneValid([HasFile('archive')])
for (group, coordinates) in SUBMISSION_GROUPS.items():
    classname = '%sArtifactSubmit' % (group.title())
    group_fields = []
    for coord in coordinates:
        group_fields.append(
            'exec("%s = fields.StringField(\'%s\', [_validator])")'
            % (coord, coord)
        )
    exec('class %s(ArtifactSubmit): %s' % (classname, ';'.join(group_fields)))
    SUBMISSION_FORMS[group] = eval(classname)


class RegistrationForm(Form):
    """
    Registration Form
    """