diff options
Diffstat (limited to 'handler.go')
| -rw-r--r-- | handler.go | 151 |
1 files changed, 147 insertions, 4 deletions
@@ -80,14 +80,14 @@ func CreateNewEntryHandler(w http.ResponseWriter, r *http.Request) { if !CompareStrings(req.Email, req.ConfirmEmail) { session.AddFlash("E-Mail don't match.", "error") session.Save(r, w) - http.Redirect(w, r, "/", 302) + http.Redirect(w, r, "/register", 302) return } if !CompareStrings(req.Password, req.ConfirmPassword) { session.AddFlash("Passwords don't match.", "error") session.Save(r, w) - http.Redirect(w, r, "/", 302) + http.Redirect(w, r, "/register", 302) return } @@ -97,11 +97,154 @@ func CreateNewEntryHandler(w http.ResponseWriter, r *http.Request) { if err != nil { session.AddFlash(err.Error(), "error") session.Save(r, w) - http.Redirect(w, r, "/", 302) + http.Redirect(w, r, "/register", 302) return } session.AddFlash("Success! You can login now with your new mail account.", "success") session.Save(r, w) - http.Redirect(w, r, "/", 302) + http.Redirect(w, r, "/register", 302) +} + +func AboutHandler(w http.ResponseWriter, r *http.Request) { + session, err := store.Get(r, "_SID") + if err != nil { + log.Println(err) + } + + flash := Flash{} + flash.Error = session.Flashes("error") + flash.Success = session.Flashes("success") + session.Save(r, w) + + err = ExecTemplate("about.html", w, flash) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + session.Save(r, w) +} + +func ServerHandler(w http.ResponseWriter, r *http.Request) { + session, err := store.Get(r, "_SID") + if err != nil { + log.Println(err) + } + + flash := Flash{} + flash.Error = session.Flashes("error") + flash.Success = session.Flashes("success") + session.Save(r, w) + + err = ExecTemplate("server.html", w, flash) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + session.Save(r, w) +} + +func HowtoHandler(w http.ResponseWriter, r *http.Request) { + session, err := store.Get(r, "_SID") + if err != nil { + log.Println(err) + } + + flash := Flash{} + flash.Error = session.Flashes("error") + flash.Success = session.Flashes("success") + session.Save(r, w) + + err = ExecTemplate("howto.html", w, flash) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + session.Save(r, w) +} + +func UserHandler(w http.ResponseWriter, r *http.Request) { + session, err := store.Get(r, "_SID") + if err != nil { + log.Println(err) + } + + flash := Flash{} + flash.Error = session.Flashes("error") + flash.Success = session.Flashes("success") + session.Save(r, w) + + err = ExecTemplate("user.html", w, flash) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + session.Save(r, w) +} + +func PasswordHandler(w http.ResponseWriter, r *http.Request) { + session, err := store.Get(r, "_SID") + if err != nil { + log.Println(err) + } + + flash := Flash{} + flash.Error = session.Flashes("error") + flash.Success = session.Flashes("success") + session.Save(r, w) + + err = ExecTemplate("password.html", w, flash) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + session.Save(r, w) +} + +func ChangePasswordHandler(w http.ResponseWriter, r *http.Request) { + + err := r.ParseForm() + if err != nil { + log.Panic(err) + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + req := ChangePasswordReq{} + err = decoder.Decode(&req, r.PostForm) + if err != nil { + log.Panic(err) + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + session, err := store.Get(r, "_SID") + if err != nil { + log.Println(err) + } + if !CompareStrings(req.NewPassword, req.ConfirmPassword) { + session.AddFlash("Passwords don't match.", "error") + session.Save(r, w) + http.Redirect(w, r, "/password", 302) + return + } + req.Password = Md5Hash(req.Password) + req.NewPassword = Md5Hash(req.NewPassword) + + if err := ChangePassword(req.Email, req.Password, req.NewPassword); err != nil { + log.Println(err) + session.AddFlash(err.Error(), "error") + session.Save(r, w) + http.Redirect(w, r, "/password", 302) + return + } + + session.AddFlash("Changed your password.", "success") + session.Save(r, w) + http.Redirect(w, r, "/user", 302) } |
