package frontend import ( "errors" "html/template" "net/http" "github.com/gorilla/sessions" b "streifling.com/jason/cpolis/cmd/backend" ) // getSession is used for verifying that the user is logged in and returns their session and an error. func getSession(w http.ResponseWriter, r *http.Request, c *b.Config, s *b.CookieStore) (*sessions.Session, error) { msg := "Keine gültige Session. Bitte erneut anmelden." tmpl, tmplErr := template.ParseFiles(c.WebDir+"/templates/index.html", c.WebDir+"/templates/login.html") session, err := s.Get(r, "cookie") if err != nil { template.Must(tmpl, tmplErr).ExecuteTemplate(w, "page-content", msg) return nil, err } if session.IsNew { template.Must(tmpl, tmplErr).ExecuteTemplate(w, "page-content", msg) return session, errors.New("error: no existing session") } return session, nil }