From feb97c32649dfaa7c98283423125283a53d5dd09 Mon Sep 17 00:00:00 2001 From: Horus3 Date: Sun, 17 May 2015 00:56:57 +0200 Subject: Improved UX, security and presentation. --- handler.go | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'handler.go') diff --git a/handler.go b/handler.go index 9035f87..021a852 100644 --- a/handler.go +++ b/handler.go @@ -10,6 +10,7 @@ func IndexHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/" flash := Flash{} flash.Error = session.Flashes("error") @@ -30,6 +31,7 @@ func RegisterHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/register" flash := Flash{} flash.Error = session.Flashes("error") @@ -99,6 +101,7 @@ func AboutHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/about" flash := Flash{} flash.Error = session.Flashes("error") @@ -119,6 +122,7 @@ func ServerHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/server" flash := Flash{} flash.Error = session.Flashes("error") @@ -139,6 +143,7 @@ func HowtoHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/howto" flash := Flash{} flash.Error = session.Flashes("error") @@ -159,6 +164,7 @@ func UserHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/user" flash := Flash{} flash.Error = session.Flashes("error") @@ -179,6 +185,7 @@ func PasswordHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/password" flash := Flash{} flash.Error = session.Flashes("error") @@ -239,7 +246,11 @@ func ChangePasswordHandler(w http.ResponseWriter, r *http.Request) { } func ChangeLocaleHandler(w http.ResponseWriter, r *http.Request) { - err := r.ParseForm() + session, err := store.Get(r, "_SID") + if err != nil { + log.Println("Info: ", err) + } + err = r.ParseForm() if err != nil { log.Panic(err) http.Error(w, err.Error(), http.StatusInternalServerError) @@ -248,11 +259,18 @@ func ChangeLocaleHandler(w http.ResponseWriter, r *http.Request) { locale := r.URL.Query().Get("to") + var page string + if session.Values["page"] == "" { + page = "/" + } else { + page = session.Values["page"].(string) + } + if len(locale) == 0 { - http.Redirect(w, r, "/", 302) + http.Redirect(w, r, page, 302) return } cookie := http.Cookie{Name: "lang", Value: locale} http.SetCookie(w, &cookie) - http.Redirect(w, r, "/", 302) + http.Redirect(w, r, page, 302) } -- cgit v1.2.3