diff options
author | James Moger <james.moger@gitblit.com> | 2013-05-30 23:15:13 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2013-05-30 23:15:13 -0400 |
commit | d0f6f2599eecb06c76739c7fab3c581fa031e75b (patch) | |
tree | 6126289bfc52807a6053eafc7726f7215c6ffddf | |
parent | 79d3240ea489067f3eb1af5e535b3687c507a249 (diff) | |
download | gitblit-d0f6f2599eecb06c76739c7fab3c581fa031e75b.tar.gz gitblit-d0f6f2599eecb06c76739c7fab3c581fa031e75b.zip |
Added locale user preference, still requires ui
-rw-r--r-- | src/main/java/com/gitblit/ConfigUserService.java | 8 | ||||
-rw-r--r-- | src/main/java/com/gitblit/models/UserPreferences.java | 2 | ||||
-rw-r--r-- | src/main/java/com/gitblit/wicket/GitBlitWebSession.java | 8 |
3 files changed, 18 insertions, 0 deletions
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<String> roles = new ArrayList<String>();
@@ -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<String, UserRepositoryPreferences> repositoryPreferences = new TreeMap<String, UserRepositoryPreferences>(); 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() {
|