Restore old way of managing session while keeping slimmed down version
This commit is contained in:
parent
d882daeb01
commit
04283d5917
@ -84,19 +84,27 @@ func ValidateSession(w http.ResponseWriter, r *http.Request, c *b.Config, s map[
|
|||||||
// their session and an error. It also handles cases where the user is not
|
// their session and an error. It also handles cases where the user is not
|
||||||
// logged in.
|
// logged in.
|
||||||
func ManageSession(w http.ResponseWriter, r *http.Request, c *b.Config, s map[string]*Session) (*Session, error) {
|
func ManageSession(w http.ResponseWriter, r *http.Request, c *b.Config, s map[string]*Session) (*Session, error) {
|
||||||
session, err := ValidateSession(w, r, c, s)
|
|
||||||
if err != nil {
|
|
||||||
if session.cookie != nil {
|
|
||||||
session.cookie.Expires = time.Now()
|
|
||||||
http.SetCookie(w, session.cookie)
|
|
||||||
}
|
|
||||||
|
|
||||||
tmpl, tmplErr := template.ParseFiles(filepath.Join(c.WebDir, "templates", "index.html"), filepath.Join(c.WebDir, "templates", "login.html"))
|
tmpl, tmplErr := template.ParseFiles(filepath.Join(c.WebDir, "templates", "index.html"), filepath.Join(c.WebDir, "templates", "login.html"))
|
||||||
|
|
||||||
|
cookie, err := r.Cookie("cpolis_session")
|
||||||
|
if err != nil {
|
||||||
if err = template.Must(tmpl, tmplErr).ExecuteTemplate(w, "page-content", nil); err != nil {
|
if err = template.Must(tmpl, tmplErr).ExecuteTemplate(w, "page-content", nil); err != nil {
|
||||||
return nil, fmt.Errorf("error executing template: %v", err)
|
return nil, fmt.Errorf("error executing template: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, err
|
return nil, errors.New("no cookie set")
|
||||||
|
}
|
||||||
|
|
||||||
|
session, ok := s[cookie.Value]
|
||||||
|
if !ok {
|
||||||
|
cookie.Expires = time.Now()
|
||||||
|
http.SetCookie(w, cookie)
|
||||||
|
|
||||||
|
if err = template.Must(tmpl, tmplErr).ExecuteTemplate(w, "page-content", nil); err != nil {
|
||||||
|
return nil, fmt.Errorf("error executing template: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, errors.New("session does not exist")
|
||||||
}
|
}
|
||||||
|
|
||||||
session.cookie.Expires = time.Now().Add(time.Hour * time.Duration(c.CookieExpiryHours))
|
session.cookie.Expires = time.Now().Add(time.Hour * time.Duration(c.CookieExpiryHours))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user