fix app_saas与 social_login 一起时有 bug

This commit is contained in:
Ivan Office
2024-12-07 03:22:03 +08:00
parent 3923007d53
commit 72f8af6cd3
4 changed files with 2 additions and 37 deletions

View File

@@ -26,7 +26,7 @@
{ {
'name': 'odooapp.cn SaaS Client-Ai Passport.Odoo中文应用商店SaaS云服务客户端', 'name': 'odooapp.cn SaaS Client-Ai Passport.Odoo中文应用商店SaaS云服务客户端',
'version': '17.0.24.12.06', 'version': '16.24.12.07',
'author': 'odooai.cn', 'author': 'odooai.cn',
'category': 'Base', 'category': 'Base',
'website': 'https://www.odooai.cn', 'website': 'https://www.odooai.cn',

View File

@@ -9,7 +9,6 @@
<field name="scope">odoo,profile</field> <field name="scope">odoo,profile</field>
<field name="validation_endpoint">https://www.odooapp.cn/oauth/profile</field> <field name="validation_endpoint">https://www.odooapp.cn/oauth/profile</field>
<field name="data_endpoint"></field> <field name="data_endpoint"></field>
<field name="user_template_id" ref=""/>
<field name="css_class">fa fa-2x fa-fw fa-sign-in text-primary</field> <field name="css_class">fa fa-2x fa-fw fa-sign-in text-primary</field>
<field name="enabled" eval="True"/> <field name="enabled" eval="True"/>
</record> </record>

View File

@@ -15,7 +15,6 @@ from odoo import api, fields, models, _
from odoo.exceptions import AccessDenied, UserError from odoo.exceptions import AccessDenied, UserError
from odoo.addons.auth_signup.models.res_users import SignupError from odoo.addons.auth_signup.models.res_users import SignupError
from odoo.http import request, Response from odoo.http import request, Response
from odoo.tools.misc import ustr
from ast import literal_eval from ast import literal_eval
import json import json
@@ -66,7 +65,7 @@ class ResUsers(models.Model):
# 额外code 处理 # 额外code 处理
kw = params kw = params
if oauth_provider.code_endpoint and code and not access_token: if oauth_provider.code_endpoint and code and not access_token:
ret = self.get_token_from_code(provider, params) ret = self.sudo().get_token_from_code(provider, params)
kw.update(ret) kw.update(ret)
kw.pop('code', False) kw.pop('code', False)
@@ -96,36 +95,6 @@ class ResUsers(models.Model):
res = super(ResUsers, self)._auth_oauth_signin(provider, validation, params) res = super(ResUsers, self)._auth_oauth_signin(provider, validation, params)
return res return res
def _create_user_from_template(self, values):
# 处理odooapp.cn 为 server 时 默认为内部用户
oauth_provider_id = values.get('oauth_provider_id')
if oauth_provider_id:
provider = request.env['auth.oauth.provider'].sudo().browse(int(oauth_provider_id))
if provider:
template_user = provider.user_template_id
if not template_user and provider.scope.find('odoo') >= 0:
template_user = self.sudo().env.ref('base.default_user', False)
if not template_user:
template_user_id = literal_eval(self.env['ir.config_parameter'].sudo().get_param('base.template_portal_user_id', 'False'))
template_user = self.sudo().browse(template_user_id)
if not values.get('login'):
raise ValueError(_('Signup: no login given for new user'))
if not values.get('partner_id') and not values.get('name'):
raise ValueError(_('Signup: no name or partner given for new user'))
# create a copy of the template user (attached to a specific partner_id if given)
values['active'] = True
try:
with self.env.cr.savepoint():
return template_user.sudo().with_context(no_reset_password=True).copy(values)
except Exception as e:
# copy may failed if asked login is not available.
raise SignupError(ustr(e))
res = super(ResUsers, self)._create_user_from_template(values)
self._cr.commit()
return res
@api.model @api.model
def _generate_signup_values(self, provider, validation, params): def _generate_signup_values(self, provider, validation, params):
# 此处生成 创建 odoo user 的初始值,增加字段如头像 # 此处生成 创建 odoo user 的初始值,增加字段如头像

View File

@@ -8,9 +8,6 @@
<xpath expr="//field[@name='auth_endpoint']" position="after"> <xpath expr="//field[@name='auth_endpoint']" position="after">
<field name="code_endpoint"/> <field name="code_endpoint"/>
</xpath> </xpath>
<xpath expr="//field[@name='data_endpoint']" position="before">
<field name="user_template_id"/>
</xpath>
</field> </field>
</record> </record>
</odoo> </odoo>