summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Morel <xmo@odoo.com>2019-06-05 09:03:06 +0000
committerOlivier Dony <odo@odoo.com>2020-08-14 23:03:27 +0000
commit9f82605df111b096fc197a809860762e968cdeef (patch)
treedb65287105ea496792a8a1a8e5dead0da9b30015
parent083c70bbb63f27839b2c9a4b549e216947bc4dd1 (diff)
[FIX] portal, website: login redirection
* migrate website to overriding web_login less (still needed to flag it as website-enabled) and use _login_redirect for its login redirection override needs * modify portal and website to not replace / shortcut the redirection workflow, so it's possible to override those properly if / as necessary
-rw-r--r--addons/portal/controllers/web.py2
-rw-r--r--addons/website/controllers/main.py15
2 files changed, 10 insertions, 7 deletions
diff --git a/addons/portal/controllers/web.py b/addons/portal/controllers/web.py
index d1c2c013aff..9e6e6175b32 100644
--- a/addons/portal/controllers/web.py
+++ b/addons/portal/controllers/web.py
@@ -16,7 +16,7 @@ class Home(Home):
def _login_redirect(self, uid, redirect=None):
if not redirect and not request.env['res.users'].sudo().browse(uid).has_group('base.group_user'):
- return '/my'
+ redirect = '/my'
return super(Home, self)._login_redirect(uid, redirect=redirect)
@http.route('/web', type='http', auth="none")
diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index 84c169358e6..8f2bc697c62 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -95,17 +95,20 @@ class Website(Home):
# while portal users are redirected to the frontend by default
# ------------------------------------------------------
- @http.route(website=True, auth="public", sitemap=False)
- def web_login(self, redirect=None, *args, **kw):
- response = super(Website, self).web_login(redirect=redirect, *args, **kw)
+ def _login_redirect(self, uid, redirect=None):
+ """ Redirect regular users (employees) to the backend) and others to
+ the frontend
+ """
if not redirect and request.params['login_success']:
- if request.env['res.users'].browse(request.uid).has_group('base.group_user'):
+ if request.env['res.users'].browse(uid).has_group('base.group_user'):
redirect = b'/web?' + request.httprequest.query_string
else:
redirect = '/my'
- return http.redirect_with_hash(redirect)
- return response
+ return super()._login_redirect(uid, redirect=redirect)
+ @http.route(website=True, auth="public", sitemap=False)
+ def web_login(self, *args, **kw):
+ return super().web_login(*args, **kw)
# ------------------------------------------------------
# Business
# ------------------------------------------------------