From b91b265cb89e43b139de79daef179de87dbcbbe5 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 28 Jan 2014 22:18:02 +0100 Subject: [PATCH] [IMP] Use ensure_db() for /web and /web/login. Logout controller does not clear the db anymore bzr revid: fme@openerp.com-20140128211802-9y77th2zojfhp35q --- addons/web/controllers/main.py | 35 ++++-------------------- addons/web/views/webclient_templates.xml | 2 +- 2 files changed, 7 insertions(+), 30 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 64442f6bb34..1b5fbf64da7 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -583,41 +583,18 @@ class Home(http.Controller): return http.local_redirect('/web', query=request.params) @http.route('/web', type='http', auth="none") - def web_client(self, s_action=None, db=None, **kw): - # if db not provided, use the session one - if not db: - db = request.session.db - - # if no database provided and no database in session, use monodb - if not db: - db = http.db_monodb(request.httprequest) - - # if no db can be found til here, send to the database selector - # the database selector will redirect to database manager if needed - if not db: - return http.local_redirect('/web/database/selector') - - # always switch the session to the computed db - if db != request.session.db: - request.session.logout() - request.session.db = db + def web_client(self, s_action=None, **kw): + http.ensure_db() if request.session.uid: - html = render_bootstrap_template(db, "web.webclient_bootstrap") + html = render_bootstrap_template(request.session.db, "web.webclient_bootstrap") return request.make_response(html, {'Cache-Control': 'no-cache', 'Content-Type': 'text/html; charset=utf-8'}) else: return http.local_redirect('/web/login', query=request.params) @http.route('/web/login', type='http', auth="none") - def web_login(self, redirect=None, db=None, **kw): - if db and db != request.session.db: - request.session.logout() - request.session.db = db - request.params.pop('db', None) - return http.local_redirect('/web/login', query=request.params) - - if not request.session.db and not db: - return http.local_redirect('/web/database/selector') + def web_login(self, redirect=None, **kw): + http.ensure_db(with_registry=True) values = request.params.copy() if not redirect: @@ -1026,7 +1003,7 @@ class Session(http.Controller): @http.route('/web/session/logout', type='http', auth="none") def logout(self, redirect='/web'): - request.session.logout() + request.session.logout(keep_db=True) return werkzeug.utils.redirect(redirect, 303) class Menu(http.Controller): diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml index 4a591f3a8da..0e08f743f6c 100644 --- a/addons/web/views/webclient_templates.xml +++ b/addons/web/views/webclient_templates.xml @@ -66,7 +66,7 @@
-