Split Redirect into two functions
This commit is contained in:
parent
599c5bb131
commit
554e0af32a
|
@ -81,7 +81,7 @@ func login(rw *gmi.ResponseWriter, req *gmi.Request) {
|
||||||
sessions[fingerprint] = &session{
|
sessions[fingerprint] = &session{
|
||||||
username: username,
|
username: username,
|
||||||
}
|
}
|
||||||
gmi.Redirect(rw, req, "/login/password", false)
|
gmi.Redirect(rw, req, "/login/password")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
gmi.CertificateRequired(rw, req)
|
gmi.CertificateRequired(rw, req)
|
||||||
|
@ -102,7 +102,7 @@ func loginPassword(rw *gmi.ResponseWriter, req *gmi.Request) {
|
||||||
expected := logins[session.username].password
|
expected := logins[session.username].password
|
||||||
if password == expected {
|
if password == expected {
|
||||||
session.authorized = true
|
session.authorized = true
|
||||||
gmi.Redirect(rw, req, "/profile", false)
|
gmi.Redirect(rw, req, "/profile")
|
||||||
} else {
|
} else {
|
||||||
gmi.SensitiveInput(rw, req, "Wrong password. Try again")
|
gmi.SensitiveInput(rw, req, "Wrong password. Try again")
|
||||||
}
|
}
|
||||||
|
|
91
server.go
91
server.go
|
@ -199,47 +199,6 @@ type Handler interface {
|
||||||
Serve(*ResponseWriter, *Request)
|
Serve(*ResponseWriter, *Request)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NotFound replies to the request with the NotFound status code.
|
|
||||||
func NotFound(rw *ResponseWriter, req *Request) {
|
|
||||||
rw.WriteHeader(StatusNotFound, "Not found")
|
|
||||||
}
|
|
||||||
|
|
||||||
// NotFoundHandler returns a simple handler that responds to each request with
|
|
||||||
// the status code NotFound.
|
|
||||||
func NotFoundHandler() Handler {
|
|
||||||
return HandlerFunc(NotFound)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gone replies to the request with the Gone status code.
|
|
||||||
func Gone(rw *ResponseWriter, req *Request) {
|
|
||||||
rw.WriteHeader(StatusGone, "Gone")
|
|
||||||
}
|
|
||||||
|
|
||||||
// GoneHandler returns a simple handler that responds to each request with
|
|
||||||
// the status code Gone.
|
|
||||||
func GoneHandler() Handler {
|
|
||||||
return HandlerFunc(Gone)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Redirect replies to the request with a redirect to the given url.
|
|
||||||
// If permanent is true, Redirect will respond with a permanent redirect.
|
|
||||||
func Redirect(rw *ResponseWriter, req *Request, url string, permanent bool) {
|
|
||||||
if permanent {
|
|
||||||
rw.WriteHeader(StatusRedirectPermanent, url)
|
|
||||||
} else {
|
|
||||||
rw.WriteHeader(StatusRedirect, url)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RedirectHandler returns a simple handler that responds to each request with
|
|
||||||
// a redirect to the given URL.
|
|
||||||
// If permanent is true, the handler will respond with a permanent redirect.
|
|
||||||
func RedirectHandler(url string, permanent bool) Handler {
|
|
||||||
return HandlerFunc(func(rw *ResponseWriter, req *Request) {
|
|
||||||
Redirect(rw, req, url, permanent)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Input responds to the request with a request for input using the given prompt.
|
// Input responds to the request with a request for input using the given prompt.
|
||||||
func Input(rw *ResponseWriter, req *Request, prompt string) {
|
func Input(rw *ResponseWriter, req *Request, prompt string) {
|
||||||
rw.WriteHeader(StatusInput, prompt)
|
rw.WriteHeader(StatusInput, prompt)
|
||||||
|
@ -253,6 +212,34 @@ func InputHandler(prompt string) Handler {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Redirect replies to the request with a redirect to the given url.
|
||||||
|
func Redirect(rw *ResponseWriter, req *Request, url string) {
|
||||||
|
rw.WriteHeader(StatusRedirect, url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RedirectHandler returns a simple handler that responds to each request with
|
||||||
|
// a redirect to the given URL.
|
||||||
|
// If permanent is true, the handler will respond with a permanent redirect.
|
||||||
|
func RedirectHandler(url string) Handler {
|
||||||
|
return HandlerFunc(func(rw *ResponseWriter, req *Request) {
|
||||||
|
Redirect(rw, req, url)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// PermanentRedirect replies to the request with a permanent redirect to the given URL.
|
||||||
|
func PermanentRedirect(rw *ResponseWriter, req *Request, url string) {
|
||||||
|
rw.WriteHeader(StatusRedirectPermanent, url)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PermanentRedirectHandler returns a simple handler that responds to each request with
|
||||||
|
// a redirect to the given URL.
|
||||||
|
// If permanent is true, the handler will respond with a permanent redirect.
|
||||||
|
func PermanentRedirectHandler(url string) Handler {
|
||||||
|
return HandlerFunc(func(rw *ResponseWriter, req *Request) {
|
||||||
|
PermanentRedirect(rw, req, url)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// Sensitive responds to the request with a request for sensitive input
|
// Sensitive responds to the request with a request for sensitive input
|
||||||
// using the given prompt.
|
// using the given prompt.
|
||||||
func SensitiveInput(rw *ResponseWriter, req *Request, prompt string) {
|
func SensitiveInput(rw *ResponseWriter, req *Request, prompt string) {
|
||||||
|
@ -279,6 +266,28 @@ func CertificateNotAuthorized(rw *ResponseWriter, req *Request) {
|
||||||
rw.WriteHeader(StatusCertificateNotAuthorized, "Certificate not authorized")
|
rw.WriteHeader(StatusCertificateNotAuthorized, "Certificate not authorized")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NotFound replies to the request with the NotFound status code.
|
||||||
|
func NotFound(rw *ResponseWriter, req *Request) {
|
||||||
|
rw.WriteHeader(StatusNotFound, "Not found")
|
||||||
|
}
|
||||||
|
|
||||||
|
// NotFoundHandler returns a simple handler that responds to each request with
|
||||||
|
// the status code NotFound.
|
||||||
|
func NotFoundHandler() Handler {
|
||||||
|
return HandlerFunc(NotFound)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gone replies to the request with the Gone status code.
|
||||||
|
func Gone(rw *ResponseWriter, req *Request) {
|
||||||
|
rw.WriteHeader(StatusGone, "Gone")
|
||||||
|
}
|
||||||
|
|
||||||
|
// GoneHandler returns a simple handler that responds to each request with
|
||||||
|
// the status code Gone.
|
||||||
|
func GoneHandler() Handler {
|
||||||
|
return HandlerFunc(Gone)
|
||||||
|
}
|
||||||
|
|
||||||
// ServeMux is a Gemini request multiplexer.
|
// ServeMux is a Gemini request multiplexer.
|
||||||
// It matches the URL of each incoming request against a list of registered
|
// It matches the URL of each incoming request against a list of registered
|
||||||
// patterns and calls the handler for the pattern that most closesly matches
|
// patterns and calls the handler for the pattern that most closesly matches
|
||||||
|
|
Loading…
Reference in New Issue
Block a user