diff options
| author | Horus3 | 2015-03-20 17:30:11 +0100 |
|---|---|---|
| committer | Horus3 | 2015-03-20 17:30:11 +0100 |
| commit | 410504e069d37c522dca6bf820e9fc4cea2de871 (patch) | |
| tree | 75db9c44b5e852652fd8e54b8d4db91147fb77a2 /handler.go | |
| parent | 9ab1f49c4c4aa5dcaa0dd50ec606ca06ca071c71 (diff) | |
| download | freemail-410504e069d37c522dca6bf820e9fc4cea2de871.tar.gz | |
Check if domain points to mail server. Add http handler to create a new entry.
Diffstat (limited to 'handler.go')
| -rw-r--r-- | handler.go | 78 |
1 files changed, 78 insertions, 0 deletions
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) +} |
