From d0f6f2599eecb06c76739c7fab3c581fa031e75b Mon Sep 17 00:00:00 2001 From: James Moger Date: Thu, 30 May 2013 23:15:13 -0400 Subject: Added locale user preference, still requires ui --- src/main/java/com/gitblit/ConfigUserService.java | 8 ++++++++ src/main/java/com/gitblit/models/UserPreferences.java | 2 ++ src/main/java/com/gitblit/wicket/GitBlitWebSession.java | 8 ++++++++ 3 files changed, 18 insertions(+) (limited to 'src/main/java/com/gitblit') diff --git a/src/main/java/com/gitblit/ConfigUserService.java b/src/main/java/com/gitblit/ConfigUserService.java index f2bd7b82..8a6c92f9 100644 --- a/src/main/java/com/gitblit/ConfigUserService.java +++ b/src/main/java/com/gitblit/ConfigUserService.java @@ -92,6 +92,8 @@ public class ConfigUserService implements IUserService { private static final String STARRED = "starred"; + private static final String LOCALE = "locale"; + private final File realmFile; private final Logger logger = LoggerFactory.getLogger(ConfigUserService.class); @@ -849,6 +851,11 @@ public class ConfigUserService implements IUserService { if (!StringUtils.isEmpty(model.countryCode)) { config.setString(USER, model.username, COUNTRYCODE, model.countryCode); } + if (model.getPreferences() != null) { + if (!StringUtils.isEmpty(model.getPreferences().locale)) { + config.setString(USER, model.username, LOCALE, model.getPreferences().locale); + } + } // user roles List roles = new ArrayList(); @@ -1010,6 +1017,7 @@ public class ConfigUserService implements IUserService { user.stateProvince = config.getString(USER, username, STATEPROVINCE); user.countryCode = config.getString(USER, username, COUNTRYCODE); user.cookie = config.getString(USER, username, COOKIE); + user.getPreferences().locale = config.getString(USER, username, LOCALE); if (StringUtils.isEmpty(user.cookie) && !StringUtils.isEmpty(user.password)) { user.cookie = StringUtils.getSHA1(user.username + user.password); } diff --git a/src/main/java/com/gitblit/models/UserPreferences.java b/src/main/java/com/gitblit/models/UserPreferences.java index 10f69cfe..e6baa289 100644 --- a/src/main/java/com/gitblit/models/UserPreferences.java +++ b/src/main/java/com/gitblit/models/UserPreferences.java @@ -37,6 +37,8 @@ public class UserPreferences implements Serializable { public final String username; + public String locale; + private final Map repositoryPreferences = new TreeMap(); public UserPreferences(String username) { diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebSession.java b/src/main/java/com/gitblit/wicket/GitBlitWebSession.java index 5195a1fd..f25bcf9b 100644 --- a/src/main/java/com/gitblit/wicket/GitBlitWebSession.java +++ b/src/main/java/com/gitblit/wicket/GitBlitWebSession.java @@ -15,6 +15,7 @@ */ package com.gitblit.wicket; +import java.util.Locale; import java.util.Map; import java.util.TimeZone; import java.util.concurrent.atomic.AtomicBoolean; @@ -120,6 +121,13 @@ public final class GitBlitWebSession extends WebSession { public void setUser(UserModel user) { this.user = user; + if (user != null) { + Locale preferredLocale = user.getPreferences().getLocale(); + if (preferredLocale != null) { + // set the user's preferred locale + setLocale(preferredLocale); + } + } } public TimeZone getTimezone() { -- cgit v1.2.3