From 9096426b18d94f6b92a342c0191df01bc137a0f8 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 9 Jan 2014 13:09:32 +0100 Subject: [PATCH] root: if the user has a preferred language, use it instead of the one from the request or the settings --- authentic/root.ptl | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/authentic/root.ptl b/authentic/root.ptl index 52b0265..99f2a79 100644 --- a/authentic/root.ptl +++ b/authentic/root.ptl @@ -98,9 +98,10 @@ class RootDirectory(Directory): cas = cas.CASDirectory() def _q_traverse(self, path): - if get_request().environ.get('HTTPS') and not get_request().session.ssl and get_request().session.id: + request = get_request() + if request.environ.get('HTTPS') and not get_request().session.ssl and get_request().session.id: get_session_manager().expire_session() - get_request().session = get_session_manager().get_session() + request.session = get_session_manager().get_session() fn = os.path.join(get_publisher().app_dir, 'common_cookie') if os.path.exists(fn): # on special domain to set cookie, nothing else, let's change root @@ -109,9 +110,14 @@ class RootDirectory(Directory): session = get_session() if session: - get_request().user = session.get_user() + request.user = session.get_user() else: - get_request().user = None + request.user = None + if request.user: + preferred_language = request.user.get_preferred_language() + if preferred_language: + request.language = preferred_language + get_publisher().install_lang(preferred_language) response = get_response() response.filter = {}