From a2ad59b66a2484aacf1c4f50973a7a601fe2bf65 Mon Sep 17 00:00:00 2001 From: Ivan Office Date: Thu, 5 Dec 2024 04:00:12 +0800 Subject: [PATCH] opt client --- app_saas/__manifest__.py | 2 +- app_saas/models/auth_oauth_provider.py | 2 ++ app_saas/models/res_users.py | 11 ++++++----- app_saas/views/auth_oauth_provider_views.xml | 3 +++ 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app_saas/__manifest__.py b/app_saas/__manifest__.py index d35acecc..ba33987e 100644 --- a/app_saas/__manifest__.py +++ b/app_saas/__manifest__.py @@ -26,7 +26,7 @@ { 'name': 'odooapp.cn SaaS Client.Odoo中文应用商店SaaS云服务客户端', - 'version': '16.24.11.08', + 'version': '16.24.12.05', 'author': 'odooai.cn', 'category': 'Base', 'website': 'https://www.odooai.cn', diff --git a/app_saas/models/auth_oauth_provider.py b/app_saas/models/auth_oauth_provider.py index 062608d1..2b9ba53b 100644 --- a/app_saas/models/auth_oauth_provider.py +++ b/app_saas/models/auth_oauth_provider.py @@ -12,3 +12,5 @@ class AuthOAuthProvider(models.Model): # 取code的url,主要针对国内的先取code,再拿Token的方式 code_endpoint = fields.Char(string='Token by Code Endpoint', help='Get Token from Code. Only for Code response type.') + user_template_id = fields.Many2one('res.users', string='New User Template', + domain=[('active', '=', False)]) diff --git a/app_saas/models/res_users.py b/app_saas/models/res_users.py index a3b417af..adc36b95 100644 --- a/app_saas/models/res_users.py +++ b/app_saas/models/res_users.py @@ -38,6 +38,7 @@ class ResUsers(models.Model): # 这里原生是已取 token,实际用 code 时要另取token access_token = params.get('access_token') oauth_provider = self.env['auth.oauth.provider'].browse(provider) + kw = {} if oauth_provider.code_endpoint and oauth_provider.scope.find('odoo') >= 0: # odoo 特殊处理,用code取token if not access_token and params.get('code'): @@ -52,10 +53,10 @@ class ResUsers(models.Model): response = requests.get(oauth_provider.code_endpoint, params=params, timeout=20) if response.ok: ret = response.json() - res = {**ret, **params} - res.pop('code') - self = self.with_context(auth_extra=params) - res = super(ResUsers, self).auth_oauth(provider, res) + kw = {**ret, **params} + kw.pop('code') + self = self.with_context(auth_extra=kw) + res = super(ResUsers, self).auth_oauth(provider, kw) return res def _create_user_from_template(self, values): @@ -88,7 +89,7 @@ class ResUsers(models.Model): @api.model def _generate_signup_values(self, provider, validation, params): # 此处生成 创建 odoo user 的初始值,增加字段如头像 - res = super(ResUsers, self)._generate_signup_values(provider, validation, params) + res = super()._generate_signup_values(provider, validation, params) # 后置增加字段,包括 headimgurl if validation.get('mobile'): res['mobile'] = validation.get('mobile') diff --git a/app_saas/views/auth_oauth_provider_views.xml b/app_saas/views/auth_oauth_provider_views.xml index 644a8e1b..83fa29b0 100644 --- a/app_saas/views/auth_oauth_provider_views.xml +++ b/app_saas/views/auth_oauth_provider_views.xml @@ -8,6 +8,9 @@ + + +