Odoo18-Base/addons/l10n_es_edi_tbai/models/certificate.py

28 lines
896 B
Python
Raw Permalink Normal View History

2025-01-06 10:57:38 +07:00
import base64
from cryptography import x509
from odoo import fields, models
class Certificate(models.Model):
_inherit = 'certificate.certificate'
scope = fields.Selection(
selection_add=[
('tbai', 'TBAI')
],
)
def _l10n_es_edi_tbai_get_issuer(self):
self.ensure_one()
cert = x509.load_pem_x509_certificate(base64.b64decode(self.pem_certificate))
common_name = cert.issuer.get_attributes_for_oid(x509.oid.NameOID.COMMON_NAME)[0].value
org_unit = cert.issuer.get_attributes_for_oid(x509.oid.NameOID.ORGANIZATIONAL_UNIT_NAME)[0].value
org_name = cert.issuer.get_attributes_for_oid(x509.oid.NameOID.ORGANIZATION_NAME)[0].value
country_name = cert.issuer.get_attributes_for_oid(x509.oid.NameOID.COUNTRY_NAME)[0].value
return f'CN={common_name}, OU={org_unit}, O={org_name}, C={country_name}'