diff options
Diffstat (limited to 'pkg/handler')
| -rw-r--r-- | pkg/handler/auth/login.go | 14 | 
1 files changed, 12 insertions, 2 deletions
| diff --git a/pkg/handler/auth/login.go b/pkg/handler/auth/login.go index 7014548..89fd87b 100644 --- a/pkg/handler/auth/login.go +++ b/pkg/handler/auth/login.go @@ -45,10 +45,19 @@ func (g *LoginHandler) Logout(w http.ResponseWriter, r *http.Request) error {  }  func (g *LoginHandler) Login(w http.ResponseWriter, r *http.Request) error { +	referer := r.URL.Query().Get("referer") + +	// if query value is empty tries to get from header +	if referer == "" { +		referer = r.Header.Get("Referer") +	} +  	if r.Method == "GET" {  		ext.SetHTML(w) -		login := &templates.LoginPage{} +		login := &templates.LoginPage{ +			Referer: referer, +		}  		templates.WritePageTemplate(w, login, r.Context())  	} else if r.Method == "POST" { @@ -57,6 +66,7 @@ func (g *LoginHandler) Login(w http.ResponseWriter, r *http.Request) error {  		if !g.auth.CheckAuth(username, password) {  			login := &templates.LoginPage{ +				Referer:      referer,  				ErrorMessage: "Invalid login",  			}  			templates.WritePageTemplate(w, login, r.Context()) @@ -78,7 +88,7 @@ func (g *LoginHandler) Login(w http.ResponseWriter, r *http.Request) error {  			}  			http.SetCookie(w, cookie) -			ext.Redirect(w, "/") +			ext.Redirect(w, referer)  		}  	} | 
