From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 30 Apr 2016 04:19:14 -0400
Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates

---
 src/main/java/com/gitblit/wicket/GitBlitWebSession.java |   33 +++++++++++++++++++--------------
 1 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebSession.java b/src/main/java/com/gitblit/wicket/GitBlitWebSession.java
index 5195a1f..31ccf1f 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;
@@ -29,7 +30,6 @@
 import org.apache.wicket.protocol.http.WebSession;
 import org.apache.wicket.protocol.http.request.WebClientInfo;
 
-import com.gitblit.Constants.AuthenticationType;
 import com.gitblit.models.UserModel;
 
 public final class GitBlitWebSession extends WebSession {
@@ -41,27 +41,25 @@
 	private UserModel user;
 
 	private String errorMessage;
-	
+
 	private String requestUrl;
-	
+
 	private AtomicBoolean isForking;
-	
-	public AuthenticationType authenticationType;
-	
+
 	public GitBlitWebSession(Request request) {
 		super(request);
 		isForking = new AtomicBoolean();
-		authenticationType = AuthenticationType.CREDENTIALS;
 	}
 
+	@Override
 	public void invalidate() {
 		super.invalidate();
 		user = null;
 	}
-	
+
 	/**
 	 * Cache the requested protected resource pending successful authentication.
-	 * 
+	 *
 	 * @param pageClass
 	 */
 	public void cacheRequest(Class<? extends Page> pageClass) {
@@ -80,14 +78,14 @@
 			bind();
 		}
 	}
-	
+
 	/**
 	 * Continue any cached request.  This is used when a request for a protected
 	 * resource is aborted/redirected pending proper authentication.  Gitblit
 	 * no longer uses Wicket's built-in mechanism for this because of Wicket's
 	 * failure to properly handle parameters with forward-slashes.  This is a
 	 * constant source of headaches with Wicket.
-	 *  
+	 *
 	 * @return false if there is no cached request to process
 	 */
 	public boolean continueRequest() {
@@ -109,7 +107,7 @@
 		}
 		return user.canAdmin();
 	}
-	
+
 	public String getUsername() {
 		return user == null ? "anonymous" : user.username;
 	}
@@ -120,6 +118,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() {
@@ -142,11 +147,11 @@
 		errorMessage = null;
 		return msg;
 	}
-	
+
 	public boolean isForking() {
 		return isForking.get();
 	}
-	
+
 	public void isForking(boolean val) {
 		isForking.set(val);
 	}

--
Gitblit v1.9.1