summaryrefslogtreecommitdiff
path: root/deleteacc.go
diff options
context:
space:
mode:
authorKevin Chabowski <kevin@kch42.de>2013-08-30 16:09:33 +0200
committerKevin Chabowski <kevin@kch42.de>2013-08-30 16:09:33 +0200
commit4965dac690a6499a9ee009280a5fc5ef9912c3ee (patch)
tree04f62d3e795515e5aa2e3a233cf88a3b6ccf5228 /deleteacc.go
parent3a501d85a560b2e2c5c5ded47cc431e4f1315d21 (diff)
downloadmailremind-4965dac690a6499a9ee009280a5fc5ef9912c3ee.tar.gz
mailremind-4965dac690a6499a9ee009280a5fc5ef9912c3ee.tar.bz2
mailremind-4965dac690a6499a9ee009280a5fc5ef9912c3ee.zip
Implemeted account deletion
Diffstat (limited to 'deleteacc.go')
-rw-r--r--deleteacc.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/deleteacc.go b/deleteacc.go
new file mode 100644
index 0000000..641d3c9
--- /dev/null
+++ b/deleteacc.go
@@ -0,0 +1,38 @@
+package main
+
+import (
+ "github.com/gorilla/sessions"
+ "kch42.de/gostuff/mailremind/model"
+ "log"
+ "net/http"
+)
+
+type reallydeleteTpldata struct {
+ OK bool
+}
+
+func deleteask(user model.User, sess *sessions.Session, req *http.Request) interface{} {
+ return &reallydeleteTpldata{user != nil}
+}
+
+func deleteacc(user model.User, sess *sessions.Session, req *http.Request) interface{} {
+ outdata := &msgTpldata{Title: "Delete Account"}
+
+ if user == nil {
+ outdata.Class = "error"
+ outdata.Msg = "You need to be logged in to do that"
+ return outdata
+ }
+
+ if err := user.Delete(); err != nil {
+ log.Printf("Error while deleting account: %s", err)
+ outdata.Class = "error"
+ outdata.Msg = "An error occurred during deletion. Please contact support, if this happens again."
+ return outdata
+ }
+
+ delete(sess.Values, "uid")
+ outdata.Class = "success"
+ outdata.Msg = "Account deleted."
+ return outdata
+}