Make all emails with the same pattern on subject (#5198)

* make all email subject standard

* move SendPasswordReset to app/email.go

update per review

* update email subjects per review

update error

fix expected subject

* Update email_test.go

* Update en.json

* fix missing quotes
Этот коммит содержится в:
Carlos Tadeu Panato Junior
2017-03-01 15:28:38 +01:00
коммит произвёл Corey Hulen
родитель c1d5e9a9e6
Коммит e5065cf757
4 изменённых файлов: 138 добавлений и 75 удалений

Просмотреть файл

@@ -7,7 +7,6 @@ import (
"bytes"
"fmt"
"hash/fnv"
"html/template"
"image"
"image/color"
"image/draw"
@@ -18,7 +17,6 @@ import (
"io/ioutil"
"mime/multipart"
"net/http"
"net/url"
"strconv"
"strings"
@@ -989,42 +987,6 @@ func UpdatePasswordSendEmail(user *model.User, newPassword, method, siteURL stri
return nil
}
func SendPasswordReset(email string, siteURL string) (bool, *model.AppError) {
var user *model.User
var err *model.AppError
if user, err = GetUserByEmail(email); err != nil {
return false, nil
}
if user.AuthData != nil && len(*user.AuthData) != 0 {
return false, model.NewAppError("SendPasswordReset", "api.user.send_password_reset.sso.app_error", nil, "userId="+user.Id, http.StatusBadRequest)
}
var recovery *model.PasswordRecovery
if recovery, err = CreatePasswordRecovery(user.Id); err != nil {
return false, err
}
T := utils.GetUserTranslations(user.Locale)
link := fmt.Sprintf("%s/reset_password_complete?code=%s", siteURL, url.QueryEscape(recovery.Code))
subject := T("api.templates.reset_subject")
bodyPage := utils.NewHTMLTemplate("reset_body", user.Locale)
bodyPage.Props["SiteURL"] = siteURL
bodyPage.Props["Title"] = T("api.templates.reset_body.title")
bodyPage.Html["Info"] = template.HTML(T("api.templates.reset_body.info"))
bodyPage.Props["ResetUrl"] = link
bodyPage.Props["Button"] = T("api.templates.reset_body.button")
if err := utils.SendMail(email, subject, bodyPage.Render()); err != nil {
return false, model.NewLocAppError("SendPasswordReset", "api.user.send_password_reset.send.app_error", nil, "err="+err.Message)
}
return true, nil
}
func ResetPasswordFromCode(code, newPassword, siteURL string) *model.AppError {
var recovery *model.PasswordRecovery
var err *model.AppError
@@ -1058,6 +1020,29 @@ func ResetPasswordFromCode(code, newPassword, siteURL string) *model.AppError {
return nil
}
func SendPasswordReset(email string, siteURL string) (bool, *model.AppError) {
var user *model.User
var err *model.AppError
if user, err = GetUserByEmail(email); err != nil {
return false, nil
}
if user.AuthData != nil && len(*user.AuthData) != 0 {
return false, model.NewAppError("SendPasswordReset", "api.user.send_password_reset.sso.app_error", nil, "userId="+user.Id, http.StatusBadRequest)
}
var recovery *model.PasswordRecovery
if recovery, err = CreatePasswordRecovery(user.Id); err != nil {
return false, err
}
if _, err := SendPasswordResetEmail(email, recovery, user.Locale, siteURL); err != nil {
return false, model.NewLocAppError("SendPasswordReset", "api.user.send_password_reset.send.app_error", nil, "err="+err.Message)
}
return true, nil
}
func CreatePasswordRecovery(userId string) (*model.PasswordRecovery, *model.AppError) {
recovery := &model.PasswordRecovery{}
recovery.UserId = userId