24 lines
639 B
Python
24 lines
639 B
Python
import base64
|
|
|
|
from cryptography import x509
|
|
|
|
from odoo import fields, models
|
|
|
|
|
|
class Certificate(models.Model):
|
|
_inherit = 'certificate.certificate'
|
|
|
|
scope = fields.Selection(
|
|
selection_add=[
|
|
('facturae', 'Facturae')
|
|
],
|
|
)
|
|
|
|
def _l10n_es_edi_facturae_get_issuer(self):
|
|
self.ensure_one()
|
|
|
|
cert = x509.load_pem_x509_certificate(base64.b64decode(self.pem_certificate))
|
|
|
|
rfc4514_attr = dict(element.rfc4514_string().split("=", 1) for element in cert.issuer.rdns)
|
|
return f"CN={rfc4514_attr['CN']}, OU={rfc4514_attr['OU']}, O={rfc4514_attr['O']}, C={rfc4514_attr['C']}"
|