add some helper methods for redirect and setting cookie
This commit is contained in:
parent
c32fa1bccd
commit
b6d901fadf
3 changed files with 17 additions and 3 deletions
|
|
@ -9,8 +9,7 @@ func GetUserOrRedirect(ctx *h.RequestContext) (db.User, bool) {
|
||||||
user, err := GetUserFromSession(ctx)
|
user, err := GetUserFromSession(ctx)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Response.Header().Set("Location", "/login")
|
ctx.Redirect("/login", 302)
|
||||||
ctx.Response.WriteHeader(302)
|
|
||||||
return db.User{}, false
|
return db.User{}, false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ func WriteSessionCookie(ctx *h.RequestContext, session CreatedSession) {
|
||||||
Expires: session.Expiration,
|
Expires: session.Expiration,
|
||||||
Path: "/",
|
Path: "/",
|
||||||
}
|
}
|
||||||
ctx.Response.Header().Add("Set-Cookie", cookie.String())
|
ctx.SetCookie(&cookie)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GenerateSessionID() (string, error) {
|
func GenerateSessionID() (string, error) {
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,21 @@ func GetRequestContext(r *http.Request) *RequestContext {
|
||||||
return r.Context().Value(RequestContextKey).(*RequestContext)
|
return r.Context().Value(RequestContextKey).(*RequestContext)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *RequestContext) SetCookie(cookie *http.Cookie) {
|
||||||
|
http.SetCookie(c.Response, cookie)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *RequestContext) Redirect(path string, code int) {
|
||||||
|
if code == 0 {
|
||||||
|
code = http.StatusTemporaryRedirect
|
||||||
|
}
|
||||||
|
if code < 300 || code > 399 {
|
||||||
|
code = http.StatusTemporaryRedirect
|
||||||
|
}
|
||||||
|
c.Response.Header().Set("Location", path)
|
||||||
|
c.Response.WriteHeader(code)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *RequestContext) IsHttpPost() bool {
|
func (c *RequestContext) IsHttpPost() bool {
|
||||||
return c.Request.Method == http.MethodPost
|
return c.Request.Method == http.MethodPost
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue