diff --git a/addons/web/controllers/home.py b/addons/web/controllers/home.py index 2483da10e02..7d741546a33 100644 --- a/addons/web/controllers/home.py +++ b/addons/web/controllers/home.py @@ -40,7 +40,7 @@ class Home(http.Controller): # Ensure we have both a database and a user ensure_db() if not request.session.uid: - return request.redirect('/web/login', 303) + return request.redirect_query('/web/login', query=request.params, code=303) if kw.get('redirect'): return request.redirect(kw.get('redirect'), 303) if not security.check_session(request.session, request.env): diff --git a/addons/web/tests/__init__.py b/addons/web/tests/__init__.py index a285835440b..126dc20c3ad 100644 --- a/addons/web/tests/__init__.py +++ b/addons/web/tests/__init__.py @@ -16,3 +16,4 @@ from . import test_assets from . import test_assets_xml from . import test_login from . import test_web_search_read +from . import test_web_redirect diff --git a/addons/web/tests/test_web_redirect.py b/addons/web/tests/test_web_redirect.py new file mode 100644 index 00000000000..5f3c955b462 --- /dev/null +++ b/addons/web/tests/test_web_redirect.py @@ -0,0 +1,25 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from werkzeug.urls import url_parse + +from odoo.tests.common import HttpCase + + +class TestWebRedirect(HttpCase): + def setUp(self): + super().setUp() + self.encoded_url_query = "redirect=web%23cids%3D1%26action%3Dmenu" + + def test_root_route_redirect_param(self): + web_response = self.url_open(f"/?{self.encoded_url_query}") + web_response.raise_for_status() + response_url_query = url_parse(web_response.url).query + + self.assertEqual(response_url_query, self.encoded_url_query) + + def test_web_route_redirect_param(self): + web_response = self.url_open(f"/web?{self.encoded_url_query}") + web_response.raise_for_status() + response_url_query = url_parse(web_response.url).query + + self.assertEqual(response_url_query, self.encoded_url_query) diff --git a/doc/cla/corporate/rapsodoo.md b/doc/cla/corporate/rapsodoo.md index ee977bed243..6076c1138ea 100644 --- a/doc/cla/corporate/rapsodoo.md +++ b/doc/cla/corporate/rapsodoo.md @@ -23,3 +23,4 @@ Andrea Patusso andrea.patusso@rapsodoo.com https://github.com/AndreaPatusso Valentina Maltese valentina.maltese@rapsodoo.com https://github.com/ValentinaMal Tommaso Bellelli tommaso.bellelli@rapsodoo.com https://github.com/tommasobellelli Saydigital info@rapsodoo.com https://github.com/saydigital +Valerio Belcastro valerio.belcastro@rapsodoo.com https://github.com/valeriobelcastro