from odoo import models, fields, api from .. import random_tokens try: from jwcrypto import jwk except ImportError: pass class ConfigParameter(models.Model): _inherit = "ir.config_parameter" @api.model def openid_init_keys(self): keys = { "galicea_openid_connect.authorization_code_jwk": lambda: jwk.JWK.generate( kty="oct", size=256, kid=random_tokens.alpha_numeric(16), use="sig", alg="HS256", ).export(), "galicea_openid_connect.id_token_jwk": lambda: jwk.JWK.generate( kty="RSA", size=2054, kid=random_tokens.alpha_numeric(16), use="sig", alg="RS256", ).export(), } for key, gen in iter(keys.items()): if not self.search([("key", "=", key)]): self.create( { "key": key, "value": gen(), "group_ids": [(4, self.env.ref("base.group_erp_manager").id)], } )