diff --git a/addons/auth_signup/controllers/main.py b/addons/auth_signup/controllers/main.py index d4eb9ec7ec4510c698c40ff331923981f60b1f2b..6ef57c2f77733b7724818c76fcce5800bf79296e 100644 --- a/addons/auth_signup/controllers/main.py +++ b/addons/auth_signup/controllers/main.py @@ -5,7 +5,7 @@ import werkzeug from odoo import http, _ from odoo.addons.auth_signup.models.res_users import SignupError -from odoo.addons.web.controllers.main import ensure_db, Home +from odoo.addons.web.controllers.main import ensure_db, Home, SIGN_UP_REQUEST_PARAMS from odoo.addons.base_setup.controllers.main import BaseSetup from odoo.exceptions import UserError from odoo.http import request @@ -101,7 +101,7 @@ class AuthSignupHome(Home): def get_auth_signup_qcontext(self): """ Shared helper returning the rendering context for signup and reset password """ - qcontext = request.params.copy() + qcontext = {k: v for (k, v) in request.params.items() if k in SIGN_UP_REQUEST_PARAMS} qcontext.update(self.get_auth_signup_config()) if not qcontext.get('token') and request.session.get('auth_signup_token'): qcontext['token'] = request.session.get('auth_signup_token') diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index c835d8d5e2aad3de345915c036fda5fb5c620306..1f75df6045e111862ca0fc0ce652c2233605d759 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -646,6 +646,10 @@ class HomeStaticTemplateHelpers(object): def get_qweb_templates(cls, addons, db=None, debug=False): return cls(addons, db, debug=debug)._get_qweb_templates()[0] +# Shared parameters for all login/signup flows +SIGN_UP_REQUEST_PARAMS = {'db', 'login', 'debug', 'token', 'message', 'error', 'scope', 'mode', + 'redirect', 'redirect_hostname', 'email', 'name', 'partner_id', + 'password', 'confirm_password', 'city', 'country_id', 'lang'} class GroupsTreeNode: """ @@ -933,7 +937,7 @@ class Home(http.Controller): if not request.uid: request.uid = odoo.SUPERUSER_ID - values = request.params.copy() + values = {k: v for k, v in request.params.items() if k in SIGN_UP_REQUEST_PARAMS} try: values['databases'] = http.db_list() except odoo.exceptions.AccessDenied: