From d0f6f2599eecb06c76739c7fab3c581fa031e75b Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 30 May 2013 23:15:13 -0400
Subject: [PATCH] Added locale user preference, still requires ui
---
src/main/java/com/gitblit/wicket/GitBlitWebSession.java | 8 ++++++++
src/main/java/com/gitblit/ConfigUserService.java | 8 ++++++++
src/main/java/com/gitblit/models/UserPreferences.java | 2 ++
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 f2bd7b8..8a6c92f 100644
--- a/src/main/java/com/gitblit/ConfigUserService.java
+++ b/src/main/java/com/gitblit/ConfigUserService.java
@@ -92,6 +92,8 @@
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 @@
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 @@
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 10f69cf..e6baa28 100644
--- a/src/main/java/com/gitblit/models/UserPreferences.java
+++ b/src/main/java/com/gitblit/models/UserPreferences.java
@@ -37,6 +37,8 @@
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 5195a1f..f25bcf9 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 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() {
--
Gitblit v1.9.1