summaryrefslogtreecommitdiff
path: root/handler.go
diff options
context:
space:
mode:
Diffstat (limited to 'handler.go')
-rw-r--r--handler.go151
1 files changed, 147 insertions, 4 deletions
diff --git a/handler.go b/handler.go
index 8fab6e8..c08704c 100644
--- a/handler.go
+++ b/handler.go
@@ -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)
}