[IMP] Use ensure_db() for /web and /web/login. Logout controller does not clear the db anymore

bzr revid: fme@openerp.com-20140128211802-9y77th2zojfhp35q
This commit is contained in:
Fabien Meghazi 2014-01-28 22:18:02 +01:00
parent 1f4bb2d289
commit b91b265cb8
2 changed files with 7 additions and 30 deletions

View File

@ -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):

View File

@ -66,7 +66,7 @@
</script>
<div class="form-group field-db" t-if="databases and len(databases) &gt; 1">
<label for="db" class="control-label">Database</label>
<select name="db" id="db" class="form-control" required="required" autofocus="autofocus" onchange="dbchanged(this.value)">
<select name="db" id="db" class="form-control" required="required" t-att-autofocus="'autofocus' if current_db not in databases else None" onchange="dbchanged(this.value)">
<option></option>
<t t-foreach="databases" t-as="db">
<option t-att-selected="'selected' if db == current_db else None">