From 10cd87cfd4318fc1c7cfe6d042175eec25372f16 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Fri, 11 Apr 2025 17:57:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ro_wechat_redirect/controllers/controllers.py | 10 ++++++---- ro_wechat_redirect/models/res_users.py | 13 ++++++------- yuthon_will_task/models/yuthon_will_task.py | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/ro_wechat_redirect/controllers/controllers.py b/ro_wechat_redirect/controllers/controllers.py index fd2b59923..9c1af1b80 100644 --- a/ro_wechat_redirect/controllers/controllers.py +++ b/ro_wechat_redirect/controllers/controllers.py @@ -7,12 +7,14 @@ from odoo.http import request class HomeExtend(Home): @http.route() - def web_login(self, redirect=None, **kw): + def web_client(self, *args, **kw): oauth_access_token = http.request.params.get('oauth_access_token') if oauth_access_token: - login = kw.get('oauth_uid') + oauth_uid = kw.get('oauth_uid') + login = request.env['res.users'].sudo().search([('oauth_uid','=',oauth_uid)]).login if login != False: - request.session.authenticate(request.session.db, login, oauth_access_token) + uid = request.session.authenticate(request.session.db, login, oauth_access_token) + request.params['login_success'] = True - result = super(HomeExtend, self).web_login(redirect, **kw) + result = super(HomeExtend, self).web_client(*args, **kw) return result diff --git a/ro_wechat_redirect/models/res_users.py b/ro_wechat_redirect/models/res_users.py index e01c5ae4e..3e63b46dd 100644 --- a/ro_wechat_redirect/models/res_users.py +++ b/ro_wechat_redirect/models/res_users.py @@ -11,6 +11,8 @@ _logger = logging.getLogger(__name__) class ResUsers(models.Model): _inherit = "res.users" + # oauth_access_token = fields.Char('oauth_access_token') + # oauth_uid = fields.Char('oauth_uid') def _check_credentials(self, password, env): """ Validates the current user's password. @@ -28,11 +30,8 @@ class ResUsers(models.Model): instead. """ """ Override this method to plug additional authentication methods""" + #skipper + if len(self.env['res.users'].sudo().search([('oauth_access_token', '=', password)]))>0: - return True - return super(ResUsers, self)._check_credentials(password, env) - - # user_id = self.env.user - # # 消息通知URL: - # url = f'/web/login?oauth_access_token={user_id.oauth_access_token}&oauth_uid={user_id.oauth_access_token}#action={action}&model={model}&view_type={view_type}&menu_id={menu_id}' - + return + return super(ResUsers, self)._check_credentials(password,env) diff --git a/yuthon_will_task/models/yuthon_will_task.py b/yuthon_will_task/models/yuthon_will_task.py index 93554c1dc..a63ab4cb0 100644 --- a/yuthon_will_task/models/yuthon_will_task.py +++ b/yuthon_will_task/models/yuthon_will_task.py @@ -87,7 +87,7 @@ class YuthonWillTask(models.Model): if not employee_id.wecom_userid: raise UserError("请同步{}的企业微信".format(employee_id.name)) menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的日程')]) - url = f'https://oa.thtzjt.com/web/login?oauth_access_token={self.env.user.oauth_access_token}&oauth_uid={self.env.user.oauth_uid}#action={menu_id.action.id}&model=yuthon.will.task&view_type=list&menu_id={menu_id.id}' + url = f'https://oa.thtzjt.com/web/login?oauth_access_token={employee_id.user_id.oauth_access_token}&oauth_uid={employee_id.user_id.oauth_uid}#action={menu_id.action.id}&model=yuthon.will.task&view_type=list&menu_id={menu_id.id}' data_name = "事项名称: " + self.task_content + '\n' data_start_time = '开始时间:' + str(self.start_time + timedelta(hours=8)) + '\n' data_user_ids = '参与人: ' + ', '.join(self.employee_ids.mapped('name')) + '\n'