auth-ui: redirect user directly to consent page if already logged in

Change-Id: I4ea575acbeb493bf2d4b4aca424043922ea07499
diff --git a/core/auth/ui/main.go b/core/auth/ui/main.go
index 3de264c..735a685 100644
--- a/core/auth/ui/main.go
+++ b/core/auth/ui/main.go
@@ -225,19 +225,26 @@
 		return
 	}
 	if challenge, ok := r.Form["login_challenge"]; ok {
+		username, err := getWhoAmIFromKratos(r.Cookies())
+		if err != nil && err != ErrNotLoggedIn {
+			http.Error(w, err.Error(), http.StatusInternalServerError)
+			return
+		}
+		if err == nil {
+			redirectTo, err := s.hydra.LoginAcceptChallenge(challenge[0], username)
+			if err != nil {
+				http.Error(w, err.Error(), http.StatusInternalServerError)
+				return
+			}
+			http.Redirect(w, r, redirectTo, http.StatusSeeOther)
+			return
+		}
 		// TODO(giolekva): encrypt
 		http.SetCookie(w, &http.Cookie{
 			Name:     "login_challenge",
 			Value:    challenge[0],
 			HttpOnly: true,
 		})
-	} else {
-		// http.SetCookie(w, &http.Cookie{
-		// 	Name:     "login_challenge",
-		// 	Value:    "",
-		// 	Expires:  time.Unix(0, 0),
-		// 	HttpOnly: true,
-		// })
 	}
 	returnTo := r.Form.Get("return_to")
 	flow, ok := r.Form["flow"]