From 410504e069d37c522dca6bf820e9fc4cea2de871 Mon Sep 17 00:00:00 2001 From: Horus3 Date: Fri, 20 Mar 2015 17:30:11 +0100 Subject: Check if domain points to mail server. Add http handler to create a new entry. --- handler.go | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 handler.go (limited to 'handler.go') diff --git a/handler.go b/handler.go new file mode 100644 index 0000000..e708a20 --- /dev/null +++ b/handler.go @@ -0,0 +1,78 @@ +package main + +import ( + "log" + "net/http" +) + +func IndexHandler(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") + + index := mainTempl.Lookup("index.html") + + err = index.ExecuteTemplate(w, "index.html", flash) + if err != nil { + log.Println(err) + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + session.Save(r, w) +} + +func CreateNewEntryHandler(w http.ResponseWriter, r *http.Request) { + err := r.ParseForm() + if err != nil { + log.Panic(err) + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + req := Request{} + 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.Email, req.ConfirmEmail) { + session.AddFlash("E-Mail don't match.", "error") + session.Save(r, w) + http.Redirect(w, r, "/", 302) + return + } + + if !CompareStrings(req.Password, req.ConfirmPassword) { + session.AddFlash("Passwords don't match.", "error") + session.Save(r, w) + http.Redirect(w, r, "/", 302) + return + } + + req.Password = Md5Hash(req.Password) + + err = CreateNewEntry(req.Email, req.Password) + if err != nil { + session.AddFlash(err, "error") + session.Save(r, w) + http.Redirect(w, r, "/", 302) + return + } + + session.AddFlash("Success! You can login now with your new mail account.") + session.Save(r, w) + http.Redirect(w, r, "/", 302) +} -- cgit v1.2.3