Better users handlers

Catch empty usernames or password on register
This commit is contained in:
Lucas BEE 2019-06-21 10:48:20 +00:00
parent 17ef2d8fd6
commit 2ca1097b77
3 changed files with 16 additions and 4 deletions

View File

@ -60,7 +60,7 @@ func GenerateUserToken(env *web.Env, w http.ResponseWriter, r *http.Request) err
// UpdateUserHandler updates the user data // UpdateUserHandler updates the user data
func UpdateUserHandler(env *web.Env, w http.ResponseWriter, r *http.Request) error { func UpdateUserHandler(env *web.Env, w http.ResponseWriter, r *http.Request) error {
log := env.Log.WithFields(logrus.Fields{ log := env.Log.WithFields(logrus.Fields{
"function": "admin.PostActivateUserHandler", "function": "admin.UpdateUserHandler",
}) })
var data struct { var data struct {

View File

@ -25,7 +25,11 @@ func SignupPOSTHandler(e *web.Env, w http.ResponseWriter, r *http.Request) error
} }
e.Log.Debugf("creating new user ...") e.Log.Debugf("creating new user ...")
if data.Password == "" && data.PasswordConfirm != "" { if data.Username == "" {
return e.RenderError(w, fmt.Errorf("Empty username"))
}
if data.Password == "" || data.PasswordConfirm == "" {
return e.RenderError(w, fmt.Errorf("Empty password")) return e.RenderError(w, fmt.Errorf("Empty password"))
} }
@ -127,12 +131,13 @@ func EditHandler(e *web.Env, w http.ResponseWriter, r *http.Request) error {
return err return err
} }
// If passwords are not empty, update
if data.Password != "" && data.PasswordConfirm != "" { if data.Password != "" && data.PasswordConfirm != "" {
if data.Password != data.PasswordConfirm { if data.Password != data.PasswordConfirm {
return e.RenderError(w, fmt.Errorf("Passwords empty or missmatch")) return e.RenderError(w, fmt.Errorf("Passwords empty or missmatch"))
} }
// Update the user config // Update the user password
var err error var err error
user.Hash, err = e.Auth.GenHash(data.Password) user.Hash, err = e.Auth.GenHash(data.Password)
if err != nil { if err != nil {
@ -156,7 +161,7 @@ func EditHandler(e *web.Env, w http.ResponseWriter, r *http.Request) error {
// Save the user with the new configurations // Save the user with the new configurations
if err := user.Update(e.Database); err != nil { if err := user.Update(e.Database); err != nil {
return err return e.RenderInternalError(w, "Error while updating user", err)
} }
return e.RenderOK(w, "user updated") return e.RenderOK(w, "user updated")

View File

@ -8,6 +8,13 @@ func (e *Env) RenderError(w http.ResponseWriter, err error) error {
return e.render(w, "error", err.Error()) return e.render(w, "error", err.Error())
} }
// RenderInternalError renders an error with a user message, and internally
// logs the real error
func (e *Env) RenderInternalError(w http.ResponseWriter, msg string, err error) error {
e.Log.Warn(err)
return e.render(w, "error", msg)
}
// RenderOK renders a message // RenderOK renders a message
func (e *Env) RenderOK(w http.ResponseWriter, message string) error { func (e *Env) RenderOK(w http.ResponseWriter, message string) error {
return e.render(w, "ok", message) return e.render(w, "ok", message)