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()