summaryrefslogtreecommitdiff
path: root/addons/web/controllers/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/controllers/main.py')
-rw-r--r--addons/web/controllers/main.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 2d585fe2466..9584c53ca5b 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -529,12 +529,14 @@ class Home(http.Controller):
def index(self, s_action=None, db=None, debug=False, **kw):
debug = debug != False
- lst = http.db_list(True)
+ try:
+ lst = http.db_list()
+ except openerp.exceptions.AccessDenied:
+ lst = []
+
if db not in lst:
db = None
guessed_db = http.db_monodb(request.httprequest)
- if guessed_db is None and len(lst) > 0:
- guessed_db = lst[0]
def redirect(db):
query = dict(urlparse.parse_qsl(request.httprequest.query_string, keep_blank_values=True))
@@ -542,8 +544,11 @@ class Home(http.Controller):
redirect = request.httprequest.path + '?' + urllib.urlencode(query)
return redirect_with_hash(redirect)
- if db is None and guessed_db is not None:
- return redirect(guessed_db)
+ if guessed_db is None and db is None and lst:
+ return redirect(lst[0])
+
+ if guessed_db is None and lst:
+ guessed_db = lst[0]
if db is not None and db != guessed_db:
request.session.logout()