def validate(self, attrs): if authenticate(username=self.user.username, password=attrs["admin_password"]) is None: raise serializers.ValidationError(_(u"管理员密码不正确")) if attrs["new_password"] != attrs["confirm_password"]: raise serializers.ValidationError(_(u"两次密码输入不一致")) return attrs
def sg_id_validator(value, sg_id_exists): if isinstance(value, list): for sg_id in value: if not sg_id_exists(sg_id): raise serializers.ValidationError( "The security group for sg_id {} not found".format(sg_id)) else: if not sg_id_exists(value): raise serializers.ValidationError( "The security group for sg_id {} not found".format(value))
def db_account_validator(account): system_remain = ['root', 'slave'] if account in system_remain: raise serializers.ValidationError(_( u"账号{}不能为数据库预留关键词".format(account))) account_pattern = re.compile(r'[0-9A-Za-z_]+') pure_number_pattern = re.compile(r'[0-9]+') is_match = account_pattern.match(account) bad_match = pure_number_pattern.match(account) if not is_match or is_match.group(0) != account or \ (bad_match is not None and bad_match.group(0) == account): raise serializers.ValidationError(_(u"账号{}不符合要求".format(account)))
def department_validator(department_id): """ 校验department_id :param department_id: :return: """ if not department_id or len(department_id) != 12: logger.error('department_id %s is not valid' % department_id) raise serializers.ValidationError('不合法的department_id') if not DepartmentService.is_department_exist(department_id, ignore_deleted=True): raise serializers.ValidationError('不是有效的department_id')
def validate(self, attrs): if not attrs.get("reference_id") and \ not attrs.get("configurations"): raise serializers.ValidationError( "need at least one of " "reference_id and configurations") return attrs
def validate(self, attrs): if attrs.get("rds_info"): if 'flavor_id' not in attrs.get("rds_info") or \ 'volume_type' not in attrs.get("rds_info"): raise serializers.ValidationError( "rds_info should contain flavor_id and volume_type") return attrs
def validate(self, attrs): cell_phone = attrs["cell_phone"] code = attrs["code"] status, error = self._check_code(cell_phone=cell_phone, code=code) if not status: raise serializers.ValidationError(error) return attrs
def config_name_validator(config_name): config_name_pattern = re.compile(r'[a-z0-9_]+') pure_number_pattern = re.compile(r'[0-9]+') is_match = config_name_pattern.match(config_name) bad_match = pure_number_pattern.match(config_name) if not is_match or is_match.group(0) != config_name or \ (bad_match is not None and bad_match.group(0) == config_name): raise serializers.ValidationError(_(u"配置名称%s不符合要求" % config_name))
def validate(self, attrs): charge_mode = attrs.get("charge_mode") package_size = attrs.get("package_size") if charge_mode in ("pay_by_month", "pay_by_year"): if package_size <= 0: raise serializers.ValidationError("package_size should be " "greater than 0") return attrs
def validate(self, attrs): captcha_key = attrs["captcha_key"] captcha_value = attrs["captcha_value"] ignore, error = captcha_validator(captcha_key=captcha_key, captcha_value=captcha_value) if error: raise serializers.ValidationError(error) return attrs
def del_sg_id_validator(value, sg_id_exists): if isinstance(value, list): for sg_id in value: if not sg_id_exists(sg_id): raise serializers.ValidationError( "The security group for sg_id {} not found".format(sg_id)) if sg_id.startswith("sg_desg"): raise serializers.ValidationError( SECURITY_MSG.get( SecurityErrorCode.DEFAULT_SECURITY_CANNOT_MODIFIED)) else: if not sg_id_exists(value): raise serializers.ValidationError( "The security group for sg_id {} not found".format(value)) if value.startswith("sg_desg"): raise serializers.ValidationError( SECURITY_MSG.get( SecurityErrorCode.DEFAULT_SECURITY_CANNOT_MODIFIED))
def validate(self, data): time_start = data["time_start"] datetime_start = datetime.datetime.fromtimestamp(time_start) if any([ datetime_start.hour, datetime_start.minute, datetime_start.second ]): raise serializers.ValidationError({"time_start": u"时间戳错误,不是0点时间戳"}) datetime_end = get_report_end(datetime_start, data['type']) data["datetime_start"] = datetime_start data["datetime_end"] = datetime_end data["type_"] = data.pop("type") return data
def validate(self, data): if data.get('main_phone') == data.get('backup_phone'): raise serializers.ValidationError(u"主联系人手机号和备用联系人手机号不能是相同") if data.get('main_name') == data.get('backup_name'): raise serializers.ValidationError(u"主联系人和备用联系人不能是同一个人") data['member_info'] = dict( name=data.get('main_name'), phone=data.get('main_phone'), # see AccountService.create backup_name=data.get('backup_name'), backup_phone=data.get('backup_phone'), # see AccountService.create account_type=AccountType.TENANT, # see AccountService.create status=data.get('status', 'enable'), area=data.get('area'), email=data.get('email'), password=data.get('password'), company_name=data.get('company_name'), company_website=data.get('company_website'), company_addr=data.get('company_addr'), ) return data
def flavor_id_validator(flavor_id): if not flavor_id or not RdsFlavorModel.flavor_exists_by_id(flavor_id): raise serializers.ValidationError( _(u"rds flavor {} 信息不存在".format(flavor_id)))
def password_validator(password): password_pattern = re.compile(r'[0-9A-Za-z_@#]+') is_match = password_pattern.match(password) if not is_match or is_match.group(0) != password: raise serializers.ValidationError(_(u"root密码%s不符合要求" % password))
def account_authority_vaidator(authorities): valid_access = {"ro", "rw", "no access"} for authority in dict(authorities).values(): if authority not in valid_access: raise serializers.ValidationError(_(u"权限{}有误".format(authority)))
def rds_id_validator(rds_id): if not rds_id or not RdsModel.rds_exists_by_id(rds_id): raise serializers.ValidationError(_(u"rds实例%s不存在" % rds_id))
def validate(self, attrs): if attrs.get("rds_id") and attrs.get("rds_ids"): raise serializers.ValidationError("either rds_id or rds_ids, " "not both") return attrs
def db_version_id_validator(db_version_id): if not db_version_id or \ not RdsDBVersionModel.db_version_exists_by_id(db_version_id): raise serializers.ValidationError(_(u"数据库与版本信息%s不存在" % db_version_id))
def rds_backup_list_validator(rds_backup_ids): if not rds_backup_ids: raise serializers.ValidationError(_(u"rds备份%s不存在" % rds_backup_ids)) for rds_backup_id in rds_backup_ids: rds_backup_id_validator(rds_backup_id)
def config_id_validator(config_id): if not config_id or not RdsConfigModel.config_exist_by_id(config_id): raise serializers.ValidationError(_(u"rds配置%s不存在" % config_id))
def rds_backup_id_validator(rds_backup_id): if not rds_backup_id or \ not RdsBackupModel.rds_backup_exists_by_id(rds_backup_id): raise serializers.ValidationError(_(u"rds备份%s不存在" % rds_backup_id))
def __call__(self, use_basenet, ext_subnet_id, int_subnet_id): if False: # TODO: validator raise serializers.ValidationError("error")
def config_list_validator(config_ids): if not config_ids: raise serializers.ValidationError(_(u"rds配置%s不存在" % config_ids)) for config_id in config_ids: config_id_validator(config_id)