the language of password reset email set to client language if user language is not set
This commit is contained in:
@@ -53,7 +53,7 @@ func (a *ForgetPasswordsApi) UserForgetPasswordRequestHandler(c *core.Context) (
|
|||||||
return nil, errs.ErrTokenGenerating
|
return nil, errs.ErrTokenGenerating
|
||||||
}
|
}
|
||||||
|
|
||||||
err = a.forgetPasswords.SendPasswordResetEmail(user, token)
|
err = a.forgetPasswords.SendPasswordResetEmail(user, token, c.GetClientLocale())
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.WarnfWithRequestId(c, "[forget_passwords.UserForgetPasswordRequestHandler] cannot send email to \"%s\", because %s", user.Email, err.Error())
|
log.WarnfWithRequestId(c, "[forget_passwords.UserForgetPasswordRequestHandler] cannot send email to \"%s\", because %s", user.Email, err.Error())
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ func (l *UserDataCli) SendPasswordResetMail(c *cli.Context, username string) err
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = l.forgetPasswords.SendPasswordResetEmail(user, token)
|
err = l.forgetPasswords.SendPasswordResetEmail(user, token, "")
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.BootWarnf("[user_data.SendPasswordResetMail] cannot send email to \"%s\", because %s", user.Email, err.Error())
|
log.BootWarnf("[user_data.SendPasswordResetMail] cannot send email to \"%s\", because %s", user.Email, err.Error())
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ const textualTokenFieldKey = "TOKEN_STRING"
|
|||||||
const tokenClaimsFieldKey = "TOKEN_CLAIMS"
|
const tokenClaimsFieldKey = "TOKEN_CLAIMS"
|
||||||
const responseErrorFieldKey = "RESPONSE_ERROR"
|
const responseErrorFieldKey = "RESPONSE_ERROR"
|
||||||
|
|
||||||
|
// AcceptLanguageHeaderName represents the header name of accept language
|
||||||
|
const AcceptLanguageHeaderName = "Accept-Language"
|
||||||
|
|
||||||
// ClientTimezoneOffsetHeaderName represents the header name of client timezone offset
|
// ClientTimezoneOffsetHeaderName represents the header name of client timezone offset
|
||||||
const ClientTimezoneOffsetHeaderName = "X-Timezone-Offset"
|
const ClientTimezoneOffsetHeaderName = "X-Timezone-Offset"
|
||||||
|
|
||||||
@@ -81,6 +84,13 @@ func (c *Context) GetCurrentUid() int64 {
|
|||||||
return claims.Uid
|
return claims.Uid
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetClientLocale returns the client locale name
|
||||||
|
func (c *Context) GetClientLocale() string {
|
||||||
|
value := c.GetHeader(AcceptLanguageHeaderName)
|
||||||
|
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
// GetClientTimezoneOffset returns the client timezone offset
|
// GetClientTimezoneOffset returns the client timezone offset
|
||||||
func (c *Context) GetClientTimezoneOffset() (int16, error) {
|
func (c *Context) GetClientTimezoneOffset() (int16, error) {
|
||||||
value := c.GetHeader(ClientTimezoneOffsetHeaderName)
|
value := c.GetHeader(ClientTimezoneOffsetHeaderName)
|
||||||
|
|||||||
@@ -34,12 +34,18 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// SendPasswordResetEmail sends password reset email according to specified parameters
|
// SendPasswordResetEmail sends password reset email according to specified parameters
|
||||||
func (s *ForgetPasswordService) SendPasswordResetEmail(user *models.User, passwordResetToken string) error {
|
func (s *ForgetPasswordService) SendPasswordResetEmail(user *models.User, passwordResetToken string, backupLocale string) error {
|
||||||
if !s.CurrentConfig().EnableSmtp {
|
if !s.CurrentConfig().EnableSmtp {
|
||||||
return errs.ErrSmtpServerNotEnabled
|
return errs.ErrSmtpServerNotEnabled
|
||||||
}
|
}
|
||||||
|
|
||||||
localeTextItems := locales.GetLocaleTextItems(user.Language)
|
locale := user.Language
|
||||||
|
|
||||||
|
if locale == "" {
|
||||||
|
locale = backupLocale
|
||||||
|
}
|
||||||
|
|
||||||
|
localeTextItems := locales.GetLocaleTextItems(locale)
|
||||||
forgetPasswordTextItems := localeTextItems.ForgetPasswordMailTextItems
|
forgetPasswordTextItems := localeTextItems.ForgetPasswordMailTextItems
|
||||||
|
|
||||||
expireTimeInMinutes := s.CurrentConfig().ForgetPasswordTokenExpiredTimeDuration.Minutes()
|
expireTimeInMinutes := s.CurrentConfig().ForgetPasswordTokenExpiredTimeDuration.Minutes()
|
||||||
|
|||||||
Reference in New Issue
Block a user