func forgotpw(user model.User, sess *sessions.Session, req *http.Request) (interface{}, model.User) { if req.Method != "POST" { return &forgotpwTpldata{}, user } if err := req.ParseForm(); err != nil { return &forgotpwTpldata{Error: "Form data corrupted."}, user } email := req.FormValue("Mail") if email == "" { return &forgotpwTpldata{Error: "E-Mail must not be empty."}, user } user, err := dbcon.UserByMail(email) if err != nil { return &forgotpwTpldata{Error: "E-Mail not found."}, user } key := genAcCode() if err := user.SetActivationCode(key); err != nil { log.Printf("Could not store pwreset key: %s", err) return &forgotpwTpldata{Error: "Could not generate a keyword reset code."}, user } if !SendPwresetLink(user.Email(), key, user.ID()) { return &forgotpwTpldata{Error: "Could not send reset E-Mail."}, user } return &forgotpwTpldata{Success: "We sent you an E-Mail with further instructions."}, user }