From 56c549e384b1a648c77bbd09a2cc77976e8a64de Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 24 May 2011 17:39:55 -0400
Subject: [PATCH] Documentation.

---
 src/com/gitblit/wicket/LoginPage.java |   65 +++++++++-----------------------
 1 files changed, 19 insertions(+), 46 deletions(-)

diff --git a/src/com/gitblit/wicket/LoginPage.java b/src/com/gitblit/wicket/LoginPage.java
index e27adc3..63cb18f 100644
--- a/src/com/gitblit/wicket/LoginPage.java
+++ b/src/com/gitblit/wicket/LoginPage.java
@@ -1,24 +1,20 @@
 package com.gitblit.wicket;
 
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.markup.html.form.StatelessForm;
 import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.markup.html.image.ContextImage;
 import org.apache.wicket.markup.html.panel.FeedbackPanel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.protocol.http.WebRequest;
-import org.apache.wicket.protocol.http.WebResponse;
-import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
 
 import com.gitblit.Constants;
 import com.gitblit.GitBlit;
+import com.gitblit.Keys;
+import com.gitblit.wicket.models.UserModel;
 
 public class LoginPage extends WebPage {
 
@@ -28,10 +24,7 @@
 	public LoginPage(PageParameters params) {
 		super(params);
 
-		tryAutomaticLogin();
-
-		add(new Label("title", getServerName()));
-		add(new ContextImage("logo", "gitblt2.png"));
+		add(new Label("title", GitBlit.self().settings().getString(Keys.web.siteName, Constants.NAME)));
 		add(new Label("name", Constants.NAME));
 
 		Form<Void> loginForm = new LoginForm("loginForm");
@@ -40,62 +33,42 @@
 		loginForm.add(new FeedbackPanel("feedback"));
 		add(loginForm);
 	}
-	
-	protected String getServerName() {
-		ServletWebRequest servletWebRequest = (ServletWebRequest) getRequest();
-		HttpServletRequest req = servletWebRequest.getHttpServletRequest();
-		return req.getServerName();
-	}
 
-	class LoginForm extends Form<Void> {
+	class LoginForm extends StatelessForm<Void> {
 		private static final long serialVersionUID = 1L;
 
 		public LoginForm(String id) {
 			super(id);
+
+			// If we are already logged in because user directly accessed
+			// the login url, redirect to the home page
+			if (GitBlitWebSession.get().isLoggedIn()) {
+				setRedirect(true);
+				setResponsePage(getApplication().getHomePage());
+			}
 		}
 
 		@Override
 		public void onSubmit() {
 			String username = LoginPage.this.username.getObject();
-			char [] password = LoginPage.this.password.getObject().toCharArray();
+			char[] password = LoginPage.this.password.getObject().toCharArray();
 
-			User user = GitBlit.self().authenticate(username, password);
+			UserModel user = GitBlit.self().authenticate(username, password);
 			if (user == null)
 				error("Invalid username or password!");
 			else
 				loginUser(user);
 		}
 	}
-
-	private void tryAutomaticLogin() {
-		User user = null;
-
-		// Grab cookie from Browser Session
-		Cookie[] cookies = ((WebRequest) getRequestCycle().getRequest()).getCookies();
-		if (cookies != null && cookies.length > 0) {
-			user = GitBlit.self().authenticate(cookies);
-		}
-
-		// Login the user
-		loginUser(user);
-	}
-
-	private void loginUser(User user) {
+	
+	private void loginUser(UserModel user) {
 		if (user != null) {
-			GitBlitWebSession session = GitBlitWebSession.get();
+			// Set the user into the session
+			GitBlitWebSession.get().setUser(user);
 
-			// Set Cookie
-			WebResponse response = (WebResponse) getRequestCycle().getResponse();
-			GitBlit.self().setCookie(response, user);
-			
-			// track user object so that we do not have to continue
-			// re-authenticating on each request.
-			session.setUser(user);
-
-			// Redirect to original page OR to first available tab
 			if (!continueToOriginalDestination()) {
 				// Redirect to home page
-				setResponsePage(session.getApplication().getHomePage());
+				setResponsePage(getApplication().getHomePage());
 			}
 		}
 	}

--
Gitblit v1.9.1