Skip to content

Commit 0ed37ec

Browse files
Merge pull request #6 from akretion/18-cross_connect_client-work-with-param
[IMP] cross_connect_client: Work with params and not server redirect_url
2 parents dcada6f + 53843e8 commit 0ed37ec

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

cross_connect_client/controllers/cross_connect.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ def cross_connect(
2121
if not server:
2222
raise UserError(request.env._("Server not found"))
2323

24-
url = server._get_cross_connect_url(request.params.get("redirect_url"))
24+
url = server._get_cross_connect_url(**params)
2525
return request.redirect(url, local=False)

cross_connect_client/models/cross_connect_server.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
# @author Florian Mounier <florian.mounier@akretion.com>
33
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
44

5+
from urllib.parse import urlencode
6+
57
import requests
68

79
from odoo import api, fields, models
@@ -98,7 +100,7 @@ def _request(self, method, url, headers=None, data=None):
98100
response.raise_for_status()
99101
return response.json()
100102

101-
def _get_cross_connect_url(self, redirect_url=None):
103+
def _get_cross_connect_url(self, **params):
102104
self.ensure_one()
103105
groups = self.env.user.groups_id & self.group_ids
104106
if not groups:
@@ -115,16 +117,18 @@ def _get_cross_connect_url(self, redirect_url=None):
115117
"lang": self.env.user.lang,
116118
"groups": [group.cross_connect_server_group_id for group in groups],
117119
}
118-
if redirect_url:
119-
data["redirect_url"] = redirect_url
120120

121121
response = self._request("POST", "/access", data=data)
122122
client_id = response.get("client_id")
123123
token = response.get("token")
124124
if not token:
125125
raise UserError(self.env._("Missing token"))
126126

127-
return self._absolute_url_for(f"login/{client_id}/{token}")
127+
url = f"login/{client_id}/{token}"
128+
if params:
129+
url += "?" + urlencode(params)
130+
131+
return self._absolute_url_for(url)
128132

129133
def _sync_groups(self):
130134
self.ensure_one()

0 commit comments

Comments
 (0)