Esempio n. 1
0
class StreamForm(form.Form):
    validated = fields.BooleanField('Valider')
    delivered = fields.BooleanField('Livrer')
    denied = fields.BooleanField('Refuser')
    comment = fields.StringField('Commentaire')
Esempio n. 2
0
class LoginForm(FlaskForm):
    username = fields.StringField('username')
    password = fields.PasswordField('password')
Esempio n. 3
0
class SendForgetMailForm(FlaskForm):
    email = fields.StringField(
        validators=[DataRequired(code_msg.EMAIL_EMPTY.get_msg())])
    vercode = fields.StringField(
        validators=[InputRequired(code_msg.VERIFY_CODE_ERROR.get_msg())])
Esempio n. 4
0
class QuestionForm(form.Form):
    text = fields.StringField('Question')
    date = fields.DateTimeField('Date')
    answer = fields.StringField('Answer')
Esempio n. 5
0
class AnswerForm(form.Form):

    key = fields.StringField('key')
    answer = fields.TextAreaField('Answer')
Esempio n. 6
0
class UserForwardForm(flask_wtf.FlaskForm):
    forward_enabled = fields.BooleanField(_('Enable forwarding'))
    forward_destination = fields.StringField(
        _('Destination'),
        [validators.Optional(), validators.Email()])
    submit = fields.SubmitField(_('Update'))
Esempio n. 7
0
class SettingsForm(form.Form):
    api_key = fields.StringField(validators=[validators.data_required()])
    api_secret = fields.StringField(validators=[validators.data_required()])

    symbol = fields.StringField(validators=[validators.data_required()])

    position_size_buy = fields.StringField(
        validators=[validators.data_required()])
    position_size_sell = fields.StringField(
        validators=[validators.data_required()])

    hedge = fields.BooleanField()
    hedge_side = fields.StringField()
    hedge_multiplier = fields.StringField()

    stop_limit_multiplier = fields.StringField()
    stop_market_multiplier = fields.StringField()

    def validate_symbol(self, field):
        if field.data not in ['XBTUSD', 'ETHUSD']:
            raise validators.ValidationError(
                'symbol not supported. supported: XBTUSD, ETHUSD')

    def validate_position_size_buy(self, field):
        try:
            if int(field.data) == 0:
                raise validators.ValidationError(
                    'position size must be a non-zero integer')
        except ValueError:
            raise validators.ValidationError(
                'position size must be a non-zero integer')

    def validate_position_size_sell(self, field):
        try:
            if int(field.data) == 0:
                raise validators.ValidationError(
                    'position size must be a non-zero integer')
        except ValueError:
            raise validators.ValidationError(
                'position size must be a non-zero integer')

    def validate_hedge_side(self, field):
        if self.hedge.data and field.data not in ['Buy', 'Sell']:
            raise validators.ValidationError(
                'hedge side is invalid. valid inputs: Buy, Sell')

    def validate_hedge_multiplier(self, field):
        if self.hedge.data:
            try:
                if float(field.data) <= 0:
                    raise validators.ValidationError(
                        'hedge multiplier must be a positive '
                        'float value (i.e. 0.5, 1, 2')
            except ValueError:
                raise validators.ValidationError(
                    'hedge multiplier must be a positive float value (i.e. 0.5, 1, 2'
                )

    def validate_stop_limit_multiplier(self, field):
        try:
            if float(field.data) < 0:
                raise validators.ValidationError(
                    'stop limit multiplier must be in the range [0, 1), with 0 to disable '
                    '(i.e. 0, 0.015 (1.5%), .99 (99%)')
        except ValueError:
            raise validators.ValidationError(
                'stop limit multiplier must be a float value in the range [0, 1), '
                'with 0 to disable (i.e. 0, 0.015 (1.5%), .99 (99%)')

    def validate_stop_market_multiplier(self, field):
        try:
            if float(field.data) < 0:
                raise validators.ValidationError(
                    'stop market multiplier must be in the range [0, 1), with 0 to disable '
                    '(i.e. 0, 0.015 (1.5%), .99 (99%)')
        except:
            raise validators.ValidationError(
                'stop market multiplier must be a float value in the range [0, 1), '
                'with 0 to disable (i.e. 0, 0.015 (1.5%), .99 (99%)')
Esempio n. 8
0
class AdsForm(form.Form):
    name = fields.StringField('名称')
    url = fields.StringField('链接')
    color = fields.StringField('颜色', default='#5FB878')
    sort = fields.IntegerField('排序', default=0)
    form_columns = ('name', 'url')
Esempio n. 9
0
class FooterLinksForm(form.Form):
    name = fields.StringField('名称')
    url = fields.StringField('链接')
    sort = fields.IntegerField('排序', default=0)
    form_columns = ('name', 'url')
Esempio n. 10
0
class CatalogsForm(form.Form):
    name = fields.StringField('栏目名称')
    sort_key = fields.IntegerField('排序', default=0)
    form_columns = ('name', 'sort_key')
Esempio n. 11
0
class OptionsForm(form.Form):
    name = fields.StringField('名称')
    code = fields.StringField('代码', )
    val = fields.StringField('值')
    form_columns = ('name', 'code', 'val')
Esempio n. 12
0
class PagesForm(form.Form):
    name = fields.StringField('名称')
    url = fields.StringField('链接')
    sort = fields.IntegerField('排序', default=0)
    icon_code = fields.StringField('图标代码(http://www.layui.com/doc/element/icon.html)')
    form_columns = ('name', 'url', 'icon_code')
Esempio n. 13
0
class SiteForm(Form):
    base_url = fields.StringField(validators=[Required()])
Esempio n. 14
0
 def conv_URL(self, model, field, kwargs):
     kwargs['validators'].append(validators.URL())
     self._string_common(model, field, kwargs)
     return f.StringField(**kwargs)
Esempio n. 15
0
class LoginForm(flask_wtf.FlaskForm):
    email = fields.StringField(_('E-mail'), [validators.Email()])
    pw = fields.PasswordField(_('Password'), [validators.DataRequired()])
    submit = fields.SubmitField(_('Sign in'))
Esempio n. 16
0
class IdentityView(ModelView):
    column_list = [
        'issuer',
        'name',
        'status',
    ]
    list_template = 'admin/identity_list.html'
    column_formatters = {
        'status': macro('render_status'),
    }

    form_excluded_columns = [
        'name',
        'issues',
        'pairs',
    ]

    form_extra_fields = {
        'subj_cn':
        fields.StringField('CN',
                           description='Common Name',
                           validators=required),
        'subj_c':
        fields.StringField('C', description='Country'),
        'subj_o':
        fields.StringField('O', description='Organization'),
        'subj_ou':
        fields.StringField('OU', description='Organizational Unit'),
        'subj_dnq':
        fields.StringField('', description='Distinguished name qualifier'),
        'subj_st':
        fields.StringField('ST', description='State or province name'),
        'subj_sn':
        fields.StringField('', description='Serial number'),
        'cert_validate_since':
        fields.DateTimeField('Valid since',
                             description='Not valid before',
                             validators=required,
                             default=default_since),
        'cert_validate_till':
        fields.DateTimeField('Valid till',
                             description='Not valid after',
                             validators=required,
                             default=default_till),
        'cert_ca_path_length':
        fields.IntegerField('CA path length', default=0),
        'san_ips':
        InlineFieldList(fields.StringField('IP', [validators.IPAddress()]),
                        'IP',
                        description='IP address'),
        'san_dns_names':
        InlineFieldList(fields.StringField('DNS'),
                        'DNS',
                        description='DNS names'),
        'ku_web_server_auth':
        fields.BooleanField('Web server auth',
                            description='TLS Web Server Authentication'),
        'ku_web_client_auth':
        fields.BooleanField('Web client auth',
                            description='TLS Web Client Authentication'),
        'key_size':
        fields.IntegerField('Size', default=2048),
        'key_public_exponent':
        fields.IntegerField('Public exponent', default=65537),
    }

    form_rules = [
        rules.Field('issuer'),
        rules.FieldSet([
            'cert_validate_since',
            'cert_validate_till',
            'cert_ca_path_length',
        ], 'Certificate settings'),
        rules.FieldSet([
            'subj_cn',
            'subj_c',
            'subj_o',
            'subj_ou',
            'subj_dnq',
            'subj_st',
            'subj_sn',
        ], 'Subject'),
        rules.FieldSet([
            'san_ips',
            'san_dns_names',
        ], 'Subject Alternative Names'),
        rules.FieldSet([
            'ku_web_server_auth',
            'ku_web_client_auth',
        ], 'Key Usage'),
        rules.FieldSet([
            'key_size',
            'key_public_exponent',
        ], 'Key Settings'),
    ]

    def create_model(self, *args, **kwargs):
        with self.session.no_autoflush:
            return super().create_model(*args, **kwargs)

    def on_model_change(self, form, model, is_created):
        data = x509.CertInfo(form.data)

        if data.issuer:
            pair = models.Pair(
                *x509.issue_certificate(data, data.issuer.pair.as_tuple))
        else:
            pair = models.Pair(*x509.issue_certificate(data))

        model.pair = pair
        model.name = data.subj_cn

    @expose('/reissue/', methods=['POST'])
    def reissue_view(self):
        model = self.get_one(request.values.get('id'))
        info = x509.load_certificate_info(model.pair.as_tuple, reissue=True)

        if model.issuer:
            pair = models.Pair(
                *x509.issue_certificate(info, model.issuer.pair.as_tuple))
        else:
            pair = models.Pair(*x509.issue_certificate(info))

        model.pair = pair

        self.session.commit()
        return_url = get_redirect_target() or self.get_url('.index_view')
        flash('The identity certificate was successfully reissued', 'success')
        return redirect(return_url)

    def edit_form(self, obj=None):
        if obj:
            info = x509.load_certificate_info(obj.pair.as_tuple, reissue=True)
            for k, v in info.as_dict().items():
                if not hasattr(obj, k):
                    setattr(obj, k, v)
        return super().edit_form(obj)

    @expose('/details/')
    def details_view(self):
        model = self.get_one(request.values.get('id'))
        return_url = get_redirect_target() or self.get_url('.index_view')
        return redirect(
            self.get_url('pair.details_view', id=model.pair.id,
                         url=return_url))

    @expose('/import/', methods=['GET', 'POST'])
    def import_view(self):
        return_url = get_redirect_target() or self.get_url('.index_view')
        form = ImportForm(get_form_data())

        if self.validate_form(form):
            pair_tuple = form.data['cert'].encode(
                'ascii'), form.data['key'].encode('ascii')
            info = x509.load_certificate_info(pair_tuple)

            if not x509.does_keys_match(pair_tuple):
                flash('Failed to import identity: keys does not match.',
                      'error')
                return redirect(return_url)

            identity = models.Identity()
            identity.name = info.subj_cn

            if not info.self_signed:

                def find_issuer():
                    for issuer in models.Identity.query.filter_by(
                            name=info.issuer_cn):
                        cert_chain = issuer.get_cert_chain()
                        try:
                            x509.verify_certificate_chain(
                                pair_tuple[0], cert_chain)
                        except x509.InvalidCertificate:
                            pass
                        else:
                            return issuer

                identity.issuer = find_issuer()
                if not identity.issuer:
                    flash(
                        'Failed to import identity: issuer identity not found.',
                        'error')
                    return redirect(return_url)

            self.session.add(identity)
            pair = models.Pair(*pair_tuple)
            pair.identity = identity
            self.session.add(pair)

            try:
                self.session.commit()
            except IntegrityError:
                flash(
                    'Failed to import identity: identity with same name already exists.',
                    'error')
                return redirect(return_url)

            flash('Identity was successfully imported.', 'success')
            return redirect(self.get_save_return_url(identity,
                                                     is_created=True))

        return self.render('admin/identity_import.html',
                           form=form,
                           return_url=return_url)
Esempio n. 17
0
class UserSettingsForm(flask_wtf.FlaskForm):
    displayed_name = fields.StringField(_('Displayed name'))
    spam_enabled = fields.BooleanField(_('Enable spam filter'))
    spam_threshold = fields_.IntegerSliderField(_('Spam filter threshold'))
    submit = fields.SubmitField(_('Save settings'))
Esempio n. 18
0
class TestForm(form.Form):
    __test__ = False
    test1 = fields.StringField('Test1')
    test2 = fields.StringField('Test2')
Esempio n. 19
0
class UserReplyForm(flask_wtf.FlaskForm):
    reply_enabled = fields.BooleanField(_('Enable automatic reply'))
    reply_subject = fields.StringField(_('Reply subject'))
    reply_body = fields.StringField(_('Reply body'), widget=widgets.TextArea())
    submit = fields.SubmitField(_('Update'))
Esempio n. 20
0
class AlternativeForm(flask_wtf.FlaskForm):
    name = fields.StringField(_('Alternative name'),
                              [validators.DataRequired()])
    submit = fields.SubmitField(_('Create'))
Esempio n. 21
0
class UserForm(form.Form):
    name = fields.StringField('Name')
    email = fields.StringField('Email')
    password = fields.PasswordField('Password')
Esempio n. 22
0
class RelayForm(flask_wtf.FlaskForm):
    name = fields.StringField(_('Relayed domain name'),
                              [validators.DataRequired()])
    smtp = fields.StringField(_('Remote host'))
    comment = fields.StringField(_('Comment'))
    submit = fields.SubmitField(_('Create'))
Esempio n. 23
0
class TrainingsetForm(form.Form):
    question = fields.StringField('Question')
    answer = fields.StringField('Answer')
Esempio n. 24
0
class GameForm(form.Form):
    name = fields.StringField(u'游戏名', [validators.Required()])
    url = fields.StringField(u'Android下载链接', [validators.Optional()])
    url_ios = fields.StringField(u'IOS跳转链接', [validators.Optional()])
    description = fields.TextAreaField(u'描述', [validators.Required()])
    intro = fields.StringField(u'简介', [validators.Optional()])
    slogan = fields.StringField(u'标语', [validators.Optional()])
    developer = fields.StringField(u'开发者', [validators.Required()])
    package_id = fields.StringField(u'软件包ID', [validators.Required()])
    package_segment = fields.StringField(u'主播工具匹配包名特征',
                                         [validators.Optional()])
    bid = fields.StringField(u'咪咕平台游戏ID', [validators.Optional()])
    bcode = fields.StringField(u'咪咕平台CODE', [validators.Optional()])
    version = fields.StringField(u'版本号', [validators.Required()])
    size = fields.FloatField(u'包大小(M)', [validators.Required()], default=0.0)
    contain_sdk = fields.BooleanField(u'是否包含SDK', default=False)
    cover = fields.StringField(u'封面图片', [validators.Required()])
    icon = fields.StringField(u'图标', [validators.Required()])
    big_icon = fields.StringField(u'大图标', [validators.Required()])
    status = fields.SelectField(u'状态', [validators.InputRequired()],
                                coerce=int,
                                choices=[(const.ONLINE, u'上架'),
                                         (const.OFFLINE, u'下线'),
                                         (const.UNDER_TEST, u'测试'),
                                         (const.OFFSHELF, u'非上架')])
    migu = JsonField(u'咪咕信息', [validators.Optional()])
    is_download = fields.BooleanField(u'是否可下载(Android)', default=False)
    is_subscribe = fields.BooleanField(u'是否可订阅(Android)', default=False)
    is_download_ios = fields.BooleanField(u'是否可下载(IOS)', default=False)
    is_subscribe_ios = fields.BooleanField(u'是否可订阅(IOS)', default=False)
    on_assistant = fields.BooleanField(u'是否在游玩助手上架', default=True)
    categories = fields.SelectMultipleField(u'分类', [validators.Optional()],
                                            coerce=ObjectId)
Esempio n. 25
0
class AddFixedRequest(FlaskForm):
    # object data
    request_id = fields.HiddenField('Hidden')
    object_id = fields.HiddenField('Hidden')
    marshal_id = fields.HiddenField('Hidden', default=-1)
    user_id = fields.HiddenField('Hidden')
    allocation_id = fields.HiddenField('Hidden')
    obj_name = fields.StringField('Object Name', [validators.input_required()])
    status = fields.SelectField('Status',
                                coerce=str,
                                choices=[('DEFAULT', "--------"),
                                         ('EXPIRED', 'EXPIRED'),
                                         ('COMPLETED', 'COMPLETED'),
                                         ('ACTIVE', 'ACTIVE'),
                                         ('CANCELED', 'CANCELED'),
                                         ('PENDING', 'PENDING')])
    obj_ra = fields.StringField('RA (HH:MM:SS or Degrees)')
    obj_dec = fields.StringField('DEC (DD:MM:SS or Degrees)')
    obj_epoch = fields.StringField('EPOCH', default='2000')
    obj_mag = fields.FloatField('Magnitude')
    allocation = fields.SelectField('allocation')

    priority = fields.FloatField('priority', default=.99)
    filters_op = fields.SelectField('filters',
                                    coerce=str,
                                    choices=[(' 1, 1, 1, 1}', 'u-g-r-i'),
                                             (' 0, 1, 1, 1}', 'g-r-i'),
                                             (' 0, 1, 0, 0}', 'g'),
                                             (' 0, 0, 1, 0}', 'r'),
                                             ('0, 0, 0, 1}', 'i'),
                                             ('0, 0, 0, 0}', '-')])
    do_r = fields.BooleanField('r')
    do_g = fields.BooleanField('g')
    do_i = fields.BooleanField('i')
    do_u = fields.BooleanField('u')
    r_exptime = fields.IntegerField('Exptime (seconds)', default=0)
    g_exptime = fields.IntegerField('Exptime (seconds)', default=0)
    i_exptime = fields.IntegerField('Exptime (seconds)', default=0)
    u_exptime = fields.IntegerField('Exptime (seconds)', default=0)
    r_repeats = fields.IntegerField('# Repeats', default=1)
    g_repeats = fields.IntegerField('# Repeats', default=1)
    i_repeats = fields.IntegerField('# Repeats', default=1)
    u_repeats = fields.IntegerField('# Repeats', default=1)

    rc_use_mag = fields.BooleanField(
        'Use object magnitude to set exposure time')
    seq_repeats = fields.IntegerField('# of Repeated Sequences', default=1)
    seq_completed = fields.IntegerField('# of Sequences Already Completed',
                                        default=0)
    ifu = fields.BooleanField('Take IFU Exposure')
    rc = fields.BooleanField('Take RC Exposure')
    ifu_use_mag = fields.BooleanField(
        'Use object magnitude to set exposure time')
    ifu_exptime = fields.IntegerField(
        'Enter Total IFU Exposure Time in seconds')
    ab = fields.BooleanField('Select For AB pair')

    cadence = fields.FloatField('cadence', default=None)

    min_moon_dist = fields.FloatField(
        'minimum moon distance (degrees)',
        validators=(validators.Optional(), validators.number_range(0., 180.)),
        default=30)

    max_moon_illum = fields.FloatField(
        'Maximum Moon Illumination (fractional 0 to 1)',
        validators=(validators.Optional(), validators.number_range(0., 1.)),
        default=1)
    maxairmass = fields.FloatField('Maximum Airmass',
                                   validators=(validators.Optional(),
                                               validators.number_range(1, 5)),
                                   default=2.5)
    max_cloud_cover = fields.FloatField(
        'Maximum Cloud Cover (fractional)',
        validators=(validators.Optional(), validators.number_range(0., 1.)),
        default=1)
    max_fwhm = fields.FloatField('Maximum FWHM',
                                 validators=(validators.Optional(),
                                             validators.number_range(0., 10.)),
                                 default=10)
    phasesamples = fields.FloatField('samples per period', default=None)
    sampletolerance = fields.FloatField('samples tolerance', default=None)
    inidate = fields.DateField('start date (Y-m-d)',
                               validators=[validators.input_required()],
                               format='%Y-%m-%d',
                               default=datetime.datetime.utcnow())

    enddate = fields.DateField('end date (Y-m-d)',
                               validators=[validators.input_required()],
                               format='%Y-%m-%d',
                               default=(datetime.datetime.utcnow() +
                                        datetime.timedelta(days=3)))
    creationdate = fields.Label('creationdate', 'Creation Date')
    lastmodified = fields.Label('lastmodified', 'Last Modified')
    last_obs_jd = fields.Label('last_obs_jd', 'Last observation')
    submit_req = fields.SubmitField('Submit Request')
Esempio n. 26
0
class LoginForm(BaseForm, NextFormMixin):
    """The default login form"""
    class Meta:
        model = User

    email = fields.StringField(
        _('flask_unchained.bundles.security:form_field.email'))
    password = fields.PasswordField(
        _('flask_unchained.bundles.security:form_field.password'))
    remember = fields.BooleanField(
        _('flask_unchained.bundles.security:form_field.remember_me'))
    submit = fields.SubmitField(
        _('flask_unchained.bundles.security:form_submit.login'))

    def __init__(self,
                 *args,
                 security_service: SecurityService = injectable,
                 security_utils_service: SecurityUtilsService = injectable,
                 **kwargs):
        super().__init__(*args, **kwargs)
        self.security_service = security_service
        self.security_utils_service = security_utils_service
        self.user = None

        if not self.next.data:
            self.next.data = request.args.get('next', '')
        self.remember.default = app.config.get('SECURITY_DEFAULT_REMEMBER_ME')

    def validate(self):
        if not super().validate():
            # FIXME-identity
            if (set(self.errors.keys()) - set(
                    self.security_utils_service.get_identity_attributes())):
                return False

        self.user = self.security_utils_service.user_loader(self.email.data)

        if self.user is None:
            self.email.errors.append(
                _('flask_unchained.bundles.security:error.user_does_not_exist')
            )
            return False
        if not self.user.password:
            self.password.errors.append(
                _('flask_unchained.bundles.security:error.password_not_set'))
            return False
        if not self.security_utils_service.verify_and_update_password(
                self.password.data, self.user):
            self.password.errors.append(
                _('flask_unchained.bundles.security:error.invalid_password'))
            return False
        if (not self.security_service.security.login_without_confirmation
                and self.security_service.security.confirmable
                and self.user.confirmed_at is None):
            self.email.errors.append(
                _('flask_unchained.bundles.security:error.confirmation_required'
                  ))
            return False
        if not self.user.active:
            self.email.errors.append(
                _('flask_unchained.bundles.security:error.disabled_account'))
            return False
        return True
Esempio n. 27
0
class UserForm(form.Form):
    name = fields.StringField('name')
    password = fields.PasswordField('password')
    created_at = fields.DateTimeField('created_at')
    updated_at = fields.DateTimeField('updated_at')
    sys_info = fields.StringField('sys_info')
class SessionRecordingDeleteForm(Form):
    name = fields.StringField('Session Recording Name')
Esempio n. 29
0
class REDU_FileURL(BaseForm):
    url = fields.StringField(
        _('Full URL'),
        [validators.url(require_tld=True, message=_('Invalid URL.'))])
    pass
Esempio n. 30
0
 def conv_PGUuid(self, column, field_args, **extra):
     self._nullable_required(column=column, field_args=field_args, **extra)
     field_args.setdefault('label', 'UUID')
     field_args['validators'].append(validators.UUID())
     return wtforms_fields.StringField(**field_args)