From 3751379f1e9a4c215fb6eb898b4ccc67659b9ace Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 10 May 2022 21:51:50 +0700 Subject: initial commit 2 --- addons/google_account/controllers/main.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 addons/google_account/controllers/main.py (limited to 'addons/google_account/controllers/main.py') diff --git a/addons/google_account/controllers/main.py b/addons/google_account/controllers/main.py new file mode 100644 index 00000000..94aeacd2 --- /dev/null +++ b/addons/google_account/controllers/main.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import json +from werkzeug.utils import redirect + +from odoo import http, registry +from odoo.http import request + + +class GoogleAuth(http.Controller): + + @http.route('/google_account/authentication', type='http', auth="public") + def oauth2callback(self, **kw): + """ This route/function is called by Google when user Accept/Refuse the consent of Google """ + state = json.loads(kw['state']) + dbname = state.get('d') + service = state.get('s') + url_return = state.get('f') + + with registry(dbname).cursor() as cr: + if kw.get('code'): + access_token, refresh_token, ttl = request.env['google.service']._get_google_tokens(kw['code'], service) + # LUL TODO only defined in google_calendar + request.env.user._set_auth_tokens(access_token, refresh_token, ttl) + return redirect(url_return) + elif kw.get('error'): + return redirect("%s%s%s" % (url_return, "?error=", kw['error'])) + else: + return redirect("%s%s" % (url_return, "?error=Unknown_error")) -- cgit v1.2.3