diff options
| author | Xavier Morel <xmo@odoo.com> | 2019-06-05 09:03:06 +0000 |
|---|---|---|
| committer | Olivier Dony <odo@odoo.com> | 2020-08-14 23:03:27 +0000 |
| commit | 9f82605df111b096fc197a809860762e968cdeef (patch) | |
| tree | db65287105ea496792a8a1a8e5dead0da9b30015 | |
| parent | 083c70bbb63f27839b2c9a4b549e216947bc4dd1 (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.py | 2 | ||||
| -rw-r--r-- | addons/website/controllers/main.py | 15 |
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 # ------------------------------------------------------ |
