fix app_saas与 social_login 一起时有 bug

This commit is contained in:
Ivan Office
2024-12-06 21:30:52 +08:00
parent 3bdfb6d7f4
commit f463bb0f17
2 changed files with 33 additions and 23 deletions

View File

@@ -26,7 +26,7 @@
{
'name': 'odooapp.cn SaaS Client-Ai Passport.Odoo中文应用商店SaaS云服务客户端',
'version': '17.0.24.12.06',
'version': '17.24.12.06',
'author': 'odooai.cn',
'category': 'Base',
'website': 'https://www.odooai.cn',
@@ -39,7 +39,7 @@
'summary': '''
AiSaas云服务使用Ai通行证一键实现全社交媒体统一登录SSO。
支持微信、抖音、QQ、淘宝、钉钉、支付宝、企业微信、Facebook、Google、微软Azure等整合登录。
在Odoo中获取最新的中文翻译另行收费获取当前Odoo模块最新版本更新等。
在Odoo中获取最新的中文翻译会员专属获取当前Odoo模块最新版本更新等。
支持Odoo中文版在线更新及 www.odooapp.cn 的信息推送等。
安装即代表同意我司云服务用户协议及隐私政策。 https://www.odooapp.cn/conditions
''',
@@ -47,7 +47,7 @@
1. Ai通行证实现全社交媒体登录支持
2. 快速访问Odoo中文应用商店并获取独享Odoo中文通行码可随时断开云服务连接
3. 一键获取最新Odoo中文应用模块与主题最新行业服务包
4. 一键获取Odoo中文翻译更新收费
4. 一键获取Odoo中文翻译更新会员专属
5. 快速获取Odoo服务Odoo升级评估
6. 系统出错时一键提交,获取技术支持(会员专属)
11.多语言支持,多公司支持

View File

@@ -34,14 +34,11 @@ class ResUsers(models.Model):
_inherit = 'res.users'
@api.model
def auth_oauth(self, provider, params):
def get_token_from_code(self, provider, params):
# 通过 code 取 token
# 这里原生是没处理code模式此处将增加使用code取token不在 controller 中处理
code = params.get('code', False)
access_token = params.get('access_token')
oauth_provider = self.env['auth.oauth.provider'].sudo().browse(provider)
kw = {}
if oauth_provider.code_endpoint and code and not access_token:
# odoo 特殊处理用code取token
params.update({
'scope': oauth_provider.scope or '',
@@ -58,8 +55,21 @@ class ResUsers(models.Model):
if ret.get('push_client_secret') and hasattr(oauth_provider, 'client_secret'):
oauth_provider.write({'client_secret': ret.get('push_client_secret')})
self._cr.commit()
kw = {**ret, **params}
return ret
return {}
@api.model
def auth_oauth(self, provider, params):
code = params.get('code', False)
access_token = params.get('access_token')
oauth_provider = self.env['auth.oauth.provider'].sudo().browse(provider)
# 额外code 处理
kw = params
if oauth_provider.code_endpoint and code and not access_token:
ret = self.get_token_from_code(provider, params)
kw.update(ret)
kw.pop('code', False)
self = self.with_context(auth_extra=kw)
res = super(ResUsers, self).auth_oauth(provider, kw)
return res