def _valida_emission_csr(self, valor, fields): csr = self.get_csr_decoded(valor) url = fields.get('emission_url', '') if not csr['ok']: raise self.ValidationError('CSR Inválida') try: voucher = self.get_voucher() except Voucher.DoesNotExist: raise self.ValidationError() if csr.get('CN') != url: raise self.ValidationError('O campo Common Name(CN) deve conter o domínio escolhido') if not comparacao_fuzzy(csr.get('O'), voucher.customer_companyname): raise self.ValidationError(get_erro_message(e.ERRO_CSR_ORGANIZATION_DIFERENTE_CNPJ)) key_size = int(csr.get('KeySize')) if voucher.ssl_line in (voucher.LINHA_BASIC, voucher.LINHA_PRO) and key_size != 2048: raise self.ValidationError(get_erro_message(e.ERRO_CSR_PRODUTO_EXIGE_CHAVE_2048_BITS)) if voucher.ssl_line == voucher.LINHA_PRIME and key_size != 4096: raise self.ValidationError(get_erro_message(e.ERRO_CSR_PRODUTO_EXIGE_CHAVE_4096_BITS)) if voucher.ssl_product in (voucher.PRODUTO_MDC, voucher.PRODUTO_SAN_UCC, voucher.PRODUTO_EV_MDC): dominios = csr.get('dnsNames', []) if len(dominios) > voucher.ssl_domains_qty: if voucher.ssl_product == voucher.PRODUTO_SAN_UCC: raise self.ValidationError(get_erro_message(e.ERRO_SEM_CREDITO_FQDN)) raise self.ValidationError(get_erro_message(e.ERRO_SEM_CREDITO_DOMINIO)) for dominio in dominios: if dominio.startswith('*.'): dominio = dominio[2:] razao_social = get_razao_social_dominio(dominio) if not razao_social: raise self.ValidationError('Não foi possível conseguir a razão social apartir do domínio: %s' % dominio) if not comparacao_fuzzy(razao_social, voucher.customer_companyname): if fields.get('emission_assignment_letter'): self.validacao_manual = True else: raise self.ValidationError('A razão social do seu CNPJ não bate com a do domínio: %s' % dominio) #TODO: TBD > Chamar o serviço da COMODO para validar o e-mail de confirmação enviado pela API return valor
def _valida_emission_dcv_emails(self, valor, fields): dominios = fields['emission_fqdns'].split(' ') emails = valor.split(' ') if len(dominios) != len(emails): raise self.ValidationError(get_erro_message(e.ERRO_DOMINIO_SEM_EMAIL_VALIDACAO)) for dominio, email in zip(dominios, emails): if email not in get_emails_validacao_padrao(dominio): raise self.ValidationError('E-mail de validação inválido: %s para o domínio %s' % (email, dominio)) return valor
def _valida_emission_url(self, valor, fields): razao_social = get_razao_social_dominio(valor) if not razao_social: raise self.ValidationError('Não foi possível conseguir a razão social apartir da url informada') try: voucher = self.get_voucher() except Voucher.DoesNotExist: raise self.ValidationError(get_erro_message(e.ERRO_VOUCHER_NAO_ENCONTRADO)) if not comparacao_fuzzy(razao_social, voucher.customer_companyname): if fields.get('emission_assignment_letter'): # se a razão social for diferente, mas o cliente enviar uma carta de cessão, # será preciso validação manual self.validacao_manual = True else: raise self.ValidationError('A entidade no registro.br não é a mesma da razão social do CNPJ, é necessária a carta de cessão.') return valor