diff options
author | Steve Manuel <nilslice@gmail.com> | 2016-12-02 11:45:50 -0800 |
---|---|---|
committer | Steve Manuel <nilslice@gmail.com> | 2016-12-02 11:45:50 -0800 |
commit | 4d55e16ecf722008b5bc47af8bfe432a6598a071 (patch) | |
tree | 8c0d51127181394d977a8f41fed6d84d3ad5bc21 | |
parent | 205428767901dbf6b8e4fac07b05772e60bcea7e (diff) |
updating errors and adding user-facing feedback
-rw-r--r-- | system/admin/handlers.go | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/system/admin/handlers.go b/system/admin/handlers.go index c3d8f98..0a6218c 100644 --- a/system/admin/handlers.go +++ b/system/admin/handlers.go @@ -656,8 +656,10 @@ func recoveryKeyHandler(res http.ResponseWriter, req *http.Request) { case http.MethodPost: err := req.ParseMultipartForm(1024 * 1024 * 4) // maxMemory 4MB if err != nil { - res.WriteHeader(http.StatusInternalServerError) log.Println("Error parsing recovery key form:", err) + + res.WriteHeader(http.StatusInternalServerError) + res.Write([]byte("Error, please go back and try again.")) return } @@ -666,16 +668,20 @@ func recoveryKeyHandler(res http.ResponseWriter, req *http.Request) { key := req.FormValue("key") var actual string - if actual, err = db.RecoveryKey(email); err != nil { - res.WriteHeader(http.StatusInternalServerError) + if actual, err = db.RecoveryKey(email); err != nil || actual == "" { log.Println("Error getting recovery key from database:", err) + + res.WriteHeader(http.StatusInternalServerError) + res.Write([]byte("Error, please go back and try again.")) return } if key != actual { - res.WriteHeader(http.StatusBadRequest) log.Println("Bad recovery key submitted:", key) log.Println("Actual:", actual) + + res.WriteHeader(http.StatusBadRequest) + res.Write([]byte("Error, please go back and try again.")) return } @@ -683,21 +689,27 @@ func recoveryKeyHandler(res http.ResponseWriter, req *http.Request) { usr := &user.User{} u, err := db.User(email) if err != nil { - res.WriteHeader(http.StatusInternalServerError) log.Println("Error finding user by email:", email, err) + + res.WriteHeader(http.StatusInternalServerError) + res.Write([]byte("Error, please go back and try again.")) return } if u == nil { - res.WriteHeader(http.StatusBadRequest) log.Println("No user found with email:", email) + + res.WriteHeader(http.StatusBadRequest) + res.Write([]byte("Error, please go back and try again.")) return } err = json.Unmarshal(u, usr) if err != nil { - res.WriteHeader(http.StatusInternalServerError) log.Println("Error decoding user from database:", err) + + res.WriteHeader(http.StatusInternalServerError) + res.Write([]byte("Error, please go back and try again.")) return } @@ -710,8 +722,10 @@ func recoveryKeyHandler(res http.ResponseWriter, req *http.Request) { err = db.UpdateUser(usr, update) if err != nil { - res.WriteHeader(http.StatusInternalServerError) log.Println("Error updating user:", err) + + res.WriteHeader(http.StatusInternalServerError) + res.Write([]byte("Error, please go back and try again.")) return } |