From 4965dac690a6499a9ee009280a5fc5ef9912c3ee Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Fri, 30 Aug 2013 16:09:33 +0200 Subject: Implemeted account deletion --- deleteacc.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 deleteacc.go (limited to 'deleteacc.go') 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 +} -- cgit v1.2.3-54-g00ecf