diff --git a/route_handlers.go b/route_handlers.go index 1d1bf02..286d73b 100644 --- a/route_handlers.go +++ b/route_handlers.go @@ -103,6 +103,15 @@ func LoginPostHandler(w http.ResponseWriter, r *http.Request) { } } +// logout POST handler +func LogoutHandler(w http.ResponseWriter, r *http.Request, user *user.User) { + session, _ := store.Get(r, "c_user") + //session.Options = &sessions.Options{MaxAge: -1} + sessionWipe(session) + session.Save(r, w) + http.Redirect(w, r, "/", http.StatusFound) +} + // ?url= func addFormHandler(w http.ResponseWriter, r *http.Request, user *user.User) { categories.LoadCategories(db) @@ -197,6 +206,8 @@ func init_route_handlers() { r := mux.NewRouter() r.HandleFunc("/login", getPostHandler(LoginFormHandler, LoginPostHandler)) + r.HandleFunc("/logout", userHandler(LogoutHandler)) + r.HandleFunc("/add", getPostHandler(userHandler(addFormHandler), userHandler(addPostHandler))) r.HandleFunc("/", getPostHandler(userHandler(templateFormHandler), userHandler(templatePostHandler)))