コード例 #1
0
def repeat_email_validator(form, field):
    """Validate repeat email field."""
    if form.email.short_name in form.errors or \
       (form.email.data == current_user['email'] and field.data == ""):
        raise StopValidation()

    if field.data != form.email.data:
        raise ValidationError(_("Email addresses does not match."))
コード例 #2
0
ファイル: auth.py プロジェクト: gradgrind/Zeugs
 def validate_PASSWORD(form, field):
     user = form.USER.data
     try:
         pwhash = Users().getHash(user)
     except:
         return
     if not check_password_hash(pwhash, field.data):
         raise StopValidation(_BADPW)
コード例 #3
0
ファイル: auth.py プロジェクト: yutaolife/playground
    def validate_password(self, field):
        email = self.email.data.lower()
        user = User.query.filter_by(email=email).first()
        if not user or not user.check_password(field.data):
            raise StopValidation('Email or password is invalid.')

        if self.confirm.data:
            login(user, False)
コード例 #4
0
ファイル: user.py プロジェクト: uwcirg/tb-api
 def validate_password(self, field):
     email = self.email.data.lower()
     user = User.query.filter_by(email=email).first()
     if not user or not user.check_password(field.data):
         raise StopValidation(
             'El correo electrónico que ingresaste no coinciden con ninguna cuenta.'
         )
     self._user = user
コード例 #5
0
ファイル: app.py プロジェクト: tclemente/sniper
 def validate_subject(form, field):
     if not form.subject.data.isdigit():
         m = re.search('(\d+)', form.subject.data)
         if m:
             form.subject.data = m.group(1)
         else:
             raise StopValidation('Please enter a valid subject')
     return True
コード例 #6
0
ファイル: file.py プロジェクト: kshamsa/3200_munstermind
    def __call__(self, form, field):
        if not (isinstance(field.data, FileStorage) and field.data):
            if self.message is None:
                message = field.gettext('This field is required.')
            else:
                message = self.message

            raise StopValidation(message)
コード例 #7
0
ファイル: validators.py プロジェクト: soybean217/lora-python
def addr_validator(form, field):
    try:
        if len(field.data) != 8:
            raise ValueError
        field.data = unhexlify(field.data)
    except (ValueError, binascii.Error) as e:
        raise StopValidation('%s is not a valid %s. Expect 8 hex digits.' %
                             (field.data, field.name))
コード例 #8
0
def isbn_syntax_validation(form, field):
    """Validate ISBN syntax."""
    message = "The provided ISBN is invalid - it should look \
                similar to '1413304540', '1-4133-0454-0', '978-1413304541' or \
                '978-1-4133-0454-1'."

    if field.data and not is_isbn(field.data):
        raise StopValidation(message)
コード例 #9
0
ファイル: validators.py プロジェクト: soybean217/lora-python
def eui_validator(form, field):
    try:
        if len(field.data) != 16:
            raise ValueError
        field.data = unhexlify(field.data)
    except (ValueError, hex_error):
        raise StopValidation(
            '%s is not a valid EUI. EUI should be 16 hex digits.' % field.data)
コード例 #10
0
ファイル: validators.py プロジェクト: soybean217/lora-python
def nwkskey_validator(form, field):
    try:
        if len(field.data) != 32:
            raise ValueError
        field.data = unhexlify(field.data)
    except (ValueError, hex_error):
        raise StopValidation('%s is not a valid %s. Expect 32 hex digits.' %
                             (field.data, field.name))
コード例 #11
0
ファイル: merchant.py プロジェクト: LyanJin/check-pay
 def validate_state(self, value):
     try:
         if value.data == "0":
             self.state.data = "0"
         else:
             self.state.data = OrderStateEnum(int(value.data))
     except Exception as e:
         raise StopValidation("无效的订单状态")
コード例 #12
0
ファイル: merchant.py プロジェクト: LyanJin/check-pay
 def validate_merchant_name(self, value):
     try:
         if value.data:
             self.merchant_name.data = MerchantEnum.from_name(value.data)
         else:
             self.merchant_name.data = None
     except Exception as e:
         raise StopValidation("无效的商户名称")
コード例 #13
0
ファイル: merchant.py プロジェクト: LyanJin/check-pay
 def validate_channel(self, value):
     try:
         if value.data:
             self.channel.data = ChannelConfigEnum.from_name(value.data)
         else:
             self.channel.data = None
     except Exception as e:
         raise StopValidation("无效的channel")
コード例 #14
0
    def __call__(self, form, field):
        if not field.has_file():
            return

        filename = field.data.filename.lower()

        if isinstance(self.upload_set, (tuple, list)):
            ext = filename.rsplit('.', 1)[-1]
            if ext in self.upload_set:
                return
            message = '{} is not in the allowed extentions: {}'.format(
                ext, self.upload_set)
            raise StopValidation(self.message or message)

        if not self.upload_set.file_allowed(field.data, filename):
            raise StopValidation(self.message
                                 or 'File does not have an approved extension')
コード例 #15
0
    def __call__(self, form, field):
        if callable(self.message):
            self.message = self.message()

        try:
            match = super(Email, self).__call__(form, field, self.message)
        except ValidationError:
            if self.stop:
                raise StopValidation(self.message)
            else:
                raise ValidationError(self.message)

        if not self.validate_hostname(match.group(1)):
            if self.stop:
                raise StopValidation(self.message)
            else:
                raise ValidationError(self.message)
コード例 #16
0
ファイル: common.py プロジェクト: zcxyun/snack-api-lin
 def validate_date_end(self, value):
     if value.data is None:
         raise StopValidation()
     try:
         date_end = datetime.strptime(value.data, '%Y-%m-%d %H:%M:%S')
     except ValueError:
         raise ValidationError('结束日期格式不正确')
     value.data = date_end
コード例 #17
0
ファイル: validators.py プロジェクト: wtakase/indico
def used_if_not_synced(form, field):
    """Validator to prevent validation error on synced inputs.

    Synced inputs are disabled in the form and don't send any value.
    In that case, we disable validation from the input.
    """
    if field.short_name in form.synced_fields:
        field.errors[:] = []
        raise StopValidation()
コード例 #18
0
ファイル: forms.py プロジェクト: IvanDubrowin/rating
 def __call__(self, form, field):
     if field.data is None or isinstance(
             field.data, string_types) and not field.data.strip():
         if self.message is None:
             message = field.gettext('')
         else:
             message = self.message
         field.errors[:] = []
         raise StopValidation(message)
コード例 #19
0
ファイル: validator.py プロジェクト: YYJeffrey/flask-tea
    def __call__(self, form, field):
        if field.data:
            return

        if not field.raw_data or isinstance(
                field.raw_data[0],
                string_types) and not self.string_check(field.raw_data[0]):
            field.errors[:] = []
            raise StopValidation()
コード例 #20
0
    def __call__(self, form, field):
        if field.data is None:
            if self.message is None:
                message = field.gettext('This field is required.')
            else:
                message = self.message

            field.errors[:] = []
            raise StopValidation(message)
コード例 #21
0
 def __call__(self, form, field):
     other_field = form._fields.get(self.other_field_name)
     if other_field is None:
         raise Exception('no field named "%s" in form' %
                         self.other_field_name)
     if other_field.data in self.other_field_values:
         super(DataRequiredIf, self).__call__(form, field)
     else:
         raise StopValidation()
コード例 #22
0
    def __call__(self, form, field):
        if field.data not in self.current_list:
            if self.message is None:
                message = field.gettext('Этот ключ.')
            else:
                message = self.message

            field.errors[:] = []
            raise StopValidation(message)
コード例 #23
0
    def __call__(self, form, field):
        if not (isinstance(field.data, FileStorage) and field.data):
            return

        filename = field.data.filename.lower()

        if isinstance(self.upload_set, Iterable):
            if any(filename.endswith('.' + x) for x in self.upload_set):
                return

            raise StopValidation(self.message or field.gettext(
                'File does not have an approved extension: {extensions}').
                                 format(extensions=', '.join(self.upload_set)))

        if not self.upload_set.file_allowed(field.data, filename):
            raise StopValidation(
                self.message
                or field.gettext('File does not have an approved extension.'))
コード例 #24
0
ファイル: validators.py プロジェクト: 5l1v3r1/baseframe
 def __call__(self, form, field):
     emails = EMAIL_RE.findall(deobfuscate_email(field.data or ''))
     for email in emails:
         try:
             diagnosis = is_email(email, check_dns=True, diagnose=True)
             if diagnosis.code == 0:
                 raise StopValidation(self.message)
         except (dns.resolver.Timeout, dns.resolver.NoNameservers):
             pass
コード例 #25
0
    def __call__(self, form, field):
        if not field.raw_data or not field.raw_data[0]:
            if self.message is None:
                message = field.gettext('{}は必須です'.format(field.label.text))
            else:
                message = self.message

            field.errors[:] = []
            raise StopValidation(message)
コード例 #26
0
ファイル: validators.py プロジェクト: 5l1v3r1/baseframe
 def __call__(self, form, field):
     try:
         diagnosis = is_email(field.data, check_dns=True, diagnose=True)
     except (dns.resolver.Timeout, dns.resolver.NoNameservers):
         return
     if diagnosis.code == 0:
         return
     else:
         raise StopValidation(self.message or _(diagnosis.message))
コード例 #27
0
ファイル: channel.py プロジェクト: LyanJin/check-pay
 def validate_amount_max(self, value):
     try:
         if value.data:
             self.amount_max.data = Decimal(str(value.data))
             BalanceKit.multiple_hundred(self.amount_max.data)
         else:
             self.amount_max.data = 0
     except Exception as e:
         raise StopValidation("无效的 amount_max")
コード例 #28
0
 def _object_filter_get(form, field):
     try:
         if not field.data:
             return None
         target = query.filter_by(id=field.data, **kwargs).first()
         assert target is not None
         field.data = target
     except Exception:
         raise StopValidation(msg)
コード例 #29
0
 def _object_get(form, field):
     try:
         if not field.data:
             return None
         target = query.get(field.data)
         assert target is not None
         field.data = target
     except Exception:
         raise StopValidation(msg)
コード例 #30
0
 def __call__(self, form, field):
   if field.data is None or (
     isinstance(field.data, string_types)
     and not field.data.strip()
   ):
     if self.message is None:
       self.message = field.gettext('This field is required.')
     field.errors[:] = []
     raise StopValidation(self.message)