diff --git a/source/java/org/alfresco/web/app/servlet/AuthenticationHelper.java b/source/java/org/alfresco/web/app/servlet/AuthenticationHelper.java index 2ca584fc7e..80994f48ff 100644 --- a/source/java/org/alfresco/web/app/servlet/AuthenticationHelper.java +++ b/source/java/org/alfresco/web/app/servlet/AuthenticationHelper.java @@ -18,6 +18,7 @@ package org.alfresco.web.app.servlet; import java.io.IOException; import java.util.Enumeration; +import java.util.Locale; import javax.portlet.PortletSession; import javax.servlet.ServletContext; @@ -154,13 +155,23 @@ public final class AuthenticationHelper tx.commit(); tx = null; // clear this so we know not to rollback +// // store the User object in the Session - the authentication servlet will then proceed +// session.setAttribute(AuthenticationHelper.AUTHENTICATION_USER, user); +// +// // Set the current locale +// I18NUtil.setLocale(Application.getLanguage(httpRequest.getSession())); +// +// // remove the session invalidated flag +// session.removeAttribute(AuthenticationHelper.SESSION_INVALIDATED); + + I18NUtil.setLocale(Application.getLanguage(httpRequest.getSession())); // store the User object in the Session - the authentication servlet will then proceed session.setAttribute(AuthenticationHelper.AUTHENTICATION_USER, user); // Set the current locale I18NUtil.setLocale(Application.getLanguage(httpRequest.getSession())); - - // remove the session invalidated flag +// + // remove the session invalidated flag session.removeAttribute(AuthenticationHelper.SESSION_INVALIDATED); // it is the responsibilty of the caller to handle the Guest return status @@ -217,6 +228,19 @@ public final class AuthenticationHelper // Set the current locale I18NUtil.setLocale(Application.getLanguage(httpRequest.getSession())); + /* setup face context */ + FacesHelper.getFacesContext(httpRequest, httpResponse, context); + + if (loginBean != null && (loginBean.getUserPreferencesBean() != null) ) + { + String contentFilterLanguageStr = loginBean.getUserPreferencesBean().getContentFilterLanguage(); + if (contentFilterLanguageStr != null) + { + //set the cocale for the method interceptor for MLText properties + I18NUtil.setContentLocale(new Locale(contentFilterLanguageStr)); + } + } + return AuthenticationStatus.Success; } } diff --git a/source/java/org/alfresco/web/bean/LoginBean.java b/source/java/org/alfresco/web/bean/LoginBean.java index f6b3ccf22d..46f83788c5 100644 --- a/source/java/org/alfresco/web/bean/LoginBean.java +++ b/source/java/org/alfresco/web/bean/LoginBean.java @@ -101,6 +101,11 @@ public class LoginBean this.preferences = preferences; } + public UserPreferencesBean getUserPreferencesBean() + { + return preferences; + } + /** * @return true if the default Alfresco authentication process is being used, else false * if an external authorisation mechanism is present. diff --git a/source/java/org/alfresco/web/bean/UserPreferencesBean.java b/source/java/org/alfresco/web/bean/UserPreferencesBean.java index fe99df9379..8b08f2ad81 100644 --- a/source/java/org/alfresco/web/bean/UserPreferencesBean.java +++ b/source/java/org/alfresco/web/bean/UserPreferencesBean.java @@ -28,6 +28,7 @@ import org.alfresco.config.Config; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.i18n.I18NUtil; import org.alfresco.web.app.Application; +import org.alfresco.web.app.context.UIContextService; import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.bean.repository.PreferencesService; import org.alfresco.web.config.LanguagesConfigElement; @@ -135,6 +136,9 @@ public class UserPreferencesBean language = I18NUtil.parseLocale(languageStr); } PreferencesService.getPreferences().setValue(PREF_CONTENTFILTERLANGUAGE, language); + + // Ensure a refresh + UIContextService.getInstance(FacesContext.getCurrentInstance()).notifyBeans(); } /**