summaryrefslogtreecommitdiff
path: root/deleteacc.go
diff options
context:
space:
mode:
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
+}