Ejemplo n.º 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."))
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
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))
Ejemplo n.º 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)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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))
Ejemplo n.º 11
0
 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("无效的订单状态")
Ejemplo n.º 12
0
 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("无效的商户名称")
Ejemplo n.º 13
0
 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")
Ejemplo n.º 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')
Ejemplo n.º 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)
Ejemplo n.º 16
0
 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
Ejemplo n.º 17
0
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()
Ejemplo n.º 18
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:
             message = field.gettext('')
         else:
             message = self.message
         field.errors[:] = []
         raise StopValidation(message)
Ejemplo n.º 19
0
    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()
Ejemplo n.º 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)
Ejemplo n.º 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()
Ejemplo n.º 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)
Ejemplo n.º 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.'))
Ejemplo n.º 24
0
 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
Ejemplo n.º 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)
Ejemplo n.º 26
0
 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))
Ejemplo n.º 27
0
 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")
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)