From f1686523df099d7f846bed2fb4e0bf2db79d8726 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 23 Mar 2022 16:57:04 +0100 Subject: [PATCH] add link information to reset password email --- backend/src/graphql/resolver/UserResolver.ts | 5 +++-- backend/src/mailer/sendResetPasswordEmail.ts | 4 +++- backend/src/mailer/text/accountActivation.ts | 1 + backend/src/mailer/text/resetPassword.ts | 18 +++++++++++++++++- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 6f7f82e02..2d2355f17 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -15,7 +15,7 @@ import { klicktippNewsletterStateMiddleware } from '@/middleware/klicktippMiddle import { UserSettingRepository } from '@repository/UserSettingRepository' import { Setting } from '@enum/Setting' import { LoginEmailOptIn } from '@entity/LoginEmailOptIn' -import { sendResetPasswordEmail } from '@/mailer/sendResetPasswordEmail' +import { sendResetPasswordEmail as sendResetPasswordEmailMailer } from '@/mailer/sendResetPasswordEmail' import { sendAccountActivationEmail } from '@/mailer/sendAccountActivationEmail' import { klicktippSignIn } from '@/apis/KlicktippController' import { RIGHTS } from '@/auth/RIGHTS' @@ -450,11 +450,12 @@ export class UserResolver { ) // eslint-disable-next-line @typescript-eslint/no-unused-vars - const emailSent = await sendResetPasswordEmail({ + const emailSent = await sendResetPasswordEmailMailer({ link, firstName: user.firstName, lastName: user.lastName, email, + duration: printEmailCodeValidTime(), }) /* uncomment this, when you need the activation link on the console diff --git a/backend/src/mailer/sendResetPasswordEmail.ts b/backend/src/mailer/sendResetPasswordEmail.ts index c9f5b23e9..d9770f940 100644 --- a/backend/src/mailer/sendResetPasswordEmail.ts +++ b/backend/src/mailer/sendResetPasswordEmail.ts @@ -1,15 +1,17 @@ import { sendEMail } from './sendEMail' import { resetPassword } from './text/resetPassword' +import CONFIG from '@/config' export const sendResetPasswordEmail = (data: { link: string firstName: string lastName: string email: string + duration: string }): Promise => { return sendEMail({ to: `${data.firstName} ${data.lastName} <${data.email}>`, subject: resetPassword.de.subject, - text: resetPassword.de.text(data), + text: resetPassword.de.text({ ...data, resendLink: CONFIG.EMAIL_LINK_FORGOTPASSWORD }), }) } diff --git a/backend/src/mailer/text/accountActivation.ts b/backend/src/mailer/text/accountActivation.ts index ea33c04d0..2755c4c0a 100644 --- a/backend/src/mailer/text/accountActivation.ts +++ b/backend/src/mailer/text/accountActivation.ts @@ -16,6 +16,7 @@ Deine E-Mail-Adresse wurde soeben bei Gradido registriert. Klicke bitte auf diesen Link, um die Registrierung abzuschließen und dein Gradido-Konto zu aktivieren: ${data.link} oder kopiere den obigen Link in dein Browserfenster. + Der Link hat eine Gültigkeit von ${data.duration .replace('hours', 'Stunden') .replace('minutes', 'Minuten') diff --git a/backend/src/mailer/text/resetPassword.ts b/backend/src/mailer/text/resetPassword.ts index 58b13cbcd..ff660f76e 100644 --- a/backend/src/mailer/text/resetPassword.ts +++ b/backend/src/mailer/text/resetPassword.ts @@ -1,13 +1,29 @@ export const resetPassword = { de: { subject: 'Gradido: Passwort zurücksetzen', - text: (data: { link: string; firstName: string; lastName: string; email: string }): string => + text: (data: { + link: string + firstName: string + lastName: string + email: string + duration: string + resendLink: string + }): string => `Hallo ${data.firstName} ${data.lastName}, Du oder jemand anderes hat für dieses Konto ein Zurücksetzen des Passworts angefordert. Wenn du es warst, klicke bitte auf den Link: ${data.link} oder kopiere den obigen Link in Dein Browserfenster. +Der Link hat eine Gültigkeit von ${data.duration + .replace('hours', 'Stunden') + .replace('minutes', 'Minuten') + .replace( + ' and ', + ' und ', + )}. Sollte die Gültigkeit des Links bereits abgelaufen sein, kannst du dir hier einen neuen Link schicken lassen, in dem du deine E-Mail-Adresse eingibst: +${data.resendLink} + Mit freundlichen Grüßen, dein Gradido-Team`, },