From e5065cf7575ee05c040945a4b00b7fd90bf39b83 Mon Sep 17 00:00:00 2001 From: Carlos Tadeu Panato Junior Date: Wed, 1 Mar 2017 15:28:38 +0100 Subject: 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 --- app/email.go | 52 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 10 deletions(-) (limited to 'app/email.go') diff --git a/app/email.go b/app/email.go index 007a24505..61ee52c15 100644 --- a/app/email.go +++ b/app/email.go @@ -16,8 +16,9 @@ import ( func SendChangeUsernameEmail(oldUsername, newUsername, email, locale, siteURL string) *model.AppError { T := utils.GetUserTranslations(locale) - subject := fmt.Sprintf("[%v] %v", utils.Cfg.TeamSettings.SiteName, T("api.templates.username_change_subject", - map[string]interface{}{"TeamDisplayName": utils.Cfg.TeamSettings.SiteName})) + subject := T("api.templates.username_change_subject", + map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"], + "TeamDisplayName": utils.Cfg.TeamSettings.SiteName}) bodyPage := utils.NewHTMLTemplate("email_change_body", locale) bodyPage.Props["SiteURL"] = siteURL @@ -37,8 +38,10 @@ func SendEmailChangeVerifyEmail(userId, newUserEmail, locale, siteURL string) *m link := fmt.Sprintf("%s/do_verify_email?uid=%s&hid=%s&email=%s", siteURL, userId, model.HashPassword(userId+utils.Cfg.EmailSettings.InviteSalt), url.QueryEscape(newUserEmail)) - subject := fmt.Sprintf("[%v] %v", utils.Cfg.TeamSettings.SiteName, T("api.templates.email_change_verify_subject", - map[string]interface{}{"TeamDisplayName": utils.Cfg.TeamSettings.SiteName})) + subject := T("api.templates.email_change_verify_subject", + map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"], + "TeamDisplayName": utils.Cfg.TeamSettings.SiteName}) + bodyPage := utils.NewHTMLTemplate("email_change_verify_body", locale) bodyPage.Props["SiteURL"] = siteURL @@ -58,8 +61,9 @@ func SendEmailChangeVerifyEmail(userId, newUserEmail, locale, siteURL string) *m func SendEmailChangeEmail(oldEmail, newEmail, locale, siteURL string) *model.AppError { T := utils.GetUserTranslations(locale) - subject := fmt.Sprintf("[%v] %v", utils.Cfg.TeamSettings.SiteName, T("api.templates.email_change_subject", - map[string]interface{}{"TeamDisplayName": utils.Cfg.TeamSettings.SiteName})) + subject := T("api.templates.email_change_subject", + map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"], + "TeamDisplayName": utils.Cfg.TeamSettings.SiteName}) bodyPage := utils.NewHTMLTemplate("email_change_body", locale) bodyPage.Props["SiteURL"] = siteURL @@ -122,7 +126,9 @@ func SendWelcomeEmail(userId string, email string, verified bool, locale, siteUR rawUrl, _ := url.Parse(siteURL) - subject := T("api.templates.welcome_subject", map[string]interface{}{"ServerURL": rawUrl.Host}) + subject := T("api.templates.welcome_subject", + map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"], + "ServerURL": rawUrl.Host}) bodyPage := utils.NewHTMLTemplate("welcome_body", locale) bodyPage.Props["SiteURL"] = siteURL @@ -154,7 +160,8 @@ func SendPasswordChangeEmail(email, method, locale, siteURL string) *model.AppEr T := utils.GetUserTranslations(locale) subject := T("api.templates.password_change_subject", - map[string]interface{}{"TeamDisplayName": utils.Cfg.TeamSettings.SiteName, "SiteName": utils.Cfg.TeamSettings.SiteName}) + map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"], + "TeamDisplayName": utils.Cfg.TeamSettings.SiteName}) bodyPage := utils.NewHTMLTemplate("password_change_body", locale) bodyPage.Props["SiteURL"] = siteURL @@ -169,11 +176,34 @@ func SendPasswordChangeEmail(email, method, locale, siteURL string) *model.AppEr return nil } +func SendPasswordResetEmail(email string, recovery *model.PasswordRecovery, locale, siteURL string) (bool, *model.AppError) { + + T := utils.GetUserTranslations(locale) + + link := fmt.Sprintf("%s/reset_password_complete?code=%s", siteURL, url.QueryEscape(recovery.Code)) + + subject := T("api.templates.reset_subject", + map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"]}) + + bodyPage := utils.NewHTMLTemplate("reset_body", 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 SendMfaChangeEmail(email string, activated bool, locale, siteURL string) *model.AppError { T := utils.GetUserTranslations(locale) subject := T("api.templates.mfa_change_subject", - map[string]interface{}{"SiteName": utils.Cfg.TeamSettings.SiteName}) + map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"]}) bodyPage := utils.NewHTMLTemplate("mfa_change_body", locale) bodyPage.Props["SiteURL"] = siteURL @@ -203,7 +233,9 @@ func SendInviteEmails(team *model.Team, senderName string, invites []string, sit senderRole := utils.T("api.team.invite_members.member") subject := utils.T("api.templates.invite_subject", - map[string]interface{}{"SenderName": senderName, "TeamDisplayName": team.DisplayName, "SiteName": utils.ClientCfg["SiteName"]}) + map[string]interface{}{"SenderName": senderName, + "TeamDisplayName": team.DisplayName, + "SiteName": utils.ClientCfg["SiteName"]}) bodyPage := utils.NewHTMLTemplate("invite_body", model.DEFAULT_LOCALE) bodyPage.Props["SiteURL"] = siteURL -- cgit v1.2.3-1-g7c22