diff options
| author | horus_arch | 2015-03-23 10:58:54 +0100 |
|---|---|---|
| committer | horus_arch | 2015-03-23 10:58:54 +0100 |
| commit | 05194f3a09b2382f269d31e6e2fa472a7b95e5c1 (patch) | |
| tree | 3a8aa81ae33e9b97149a55ff6a715caa3c93dda9 /handler.go | |
| parent | 558fe8ba9fb42231b34977fef542c43a34b3bd00 (diff) | |
| download | freemail-05194f3a09b2382f269d31e6e2fa472a7b95e5c1.tar.gz | |
Add html documentation. Change password handler.
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) } |
