Beispiel #1
0
    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
Beispiel #2
0
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))
Beispiel #3
0
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)))
Beispiel #4
0
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')
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
 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
Beispiel #8
0
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))
Beispiel #9
0
 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
Beispiel #10
0
 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
Beispiel #11
0
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))
Beispiel #12
0
 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
Beispiel #13
0
    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
Beispiel #14
0
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)))
Beispiel #15
0
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))
Beispiel #16
0
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)))
Beispiel #17
0
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))
Beispiel #18
0
 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
Beispiel #19
0
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))
Beispiel #20
0
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)
Beispiel #21
0
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))
Beispiel #22
0
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))
Beispiel #23
0
 def __call__(self, use_basenet, ext_subnet_id, int_subnet_id):
     if False:  # TODO: validator
         raise serializers.ValidationError("error")
Beispiel #24
0
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)