diff options
author | Kevin Chabowski <kevin@kch42.de> | 2013-08-30 16:09:33 +0200 |
---|---|---|
committer | Kevin Chabowski <kevin@kch42.de> | 2013-08-30 16:09:33 +0200 |
commit | 4965dac690a6499a9ee009280a5fc5ef9912c3ee (patch) | |
tree | 04f62d3e795515e5aa2e3a233cf88a3b6ccf5228 /deleteacc.go | |
parent | 3a501d85a560b2e2c5c5ded47cc431e4f1315d21 (diff) | |
download | mailremind-4965dac690a6499a9ee009280a5fc5ef9912c3ee.tar.gz mailremind-4965dac690a6499a9ee009280a5fc5ef9912c3ee.tar.bz2 mailremind-4965dac690a6499a9ee009280a5fc5ef9912c3ee.zip |
Implemeted account deletion
Diffstat (limited to 'deleteacc.go')
-rw-r--r-- | deleteacc.go | 38 |
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 +} |