If the record with the external id 'auth_oauth.provider_google' does not exist in the database, 'google_provider' variable will contains None. Before this commit, calling get and set methods produced an error. After this commit, trying to set a token for Google Authentication will do nothing. While this is not ideal, one can assume somebody that deleted an OAuth provider rarely wants to configure it and can still upgrade the module to get it back. closes odoo/odoo#45566 X-original-commit: eca90a31d0d3667cf63994d34c5d2bb81bfd45c4 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import logging
|
|
|
|
from odoo import api, fields, models
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class ResConfigSettings(models.TransientModel):
|
|
_inherit = 'res.config.settings'
|
|
|
|
@api.model
|
|
def get_uri(self):
|
|
return "%s/auth_oauth/signin" % (self.env['ir.config_parameter'].get_param('web.base.url'))
|
|
|
|
auth_oauth_google_enabled = fields.Boolean(string='Allow users to sign in with Google')
|
|
auth_oauth_google_client_id = fields.Char(string='Client ID')
|
|
server_uri_google = fields.Char(string='Server uri')
|
|
|
|
@api.model
|
|
def get_values(self):
|
|
res = super(ResConfigSettings, self).get_values()
|
|
google_provider = self.env.ref('auth_oauth.provider_google', False)
|
|
google_provider and res.update(
|
|
auth_oauth_google_enabled=google_provider.enabled,
|
|
auth_oauth_google_client_id=google_provider.client_id,
|
|
server_uri_google=self.get_uri(),
|
|
)
|
|
return res
|
|
|
|
def set_values(self):
|
|
super(ResConfigSettings, self).set_values()
|
|
google_provider = self.env.ref('auth_oauth.provider_google', False)
|
|
google_provider and google_provider.write({
|
|
'enabled': self.auth_oauth_google_enabled,
|
|
'client_id': self.auth_oauth_google_client_id,
|
|
})
|