1
0
Эх сурвалжийг харах

feat(email-plugin): Use new User model in email handlers

BREAKING CHANGE: (email-plugin) The default email handlers have been updated to use the new User model, and as a result the email templates "email-verification", "email-address-change" and "password-reset" should be updated to remove the "user" object, so `{{ user.verificationToken }}` becomes `{{ verificationToken }}` and so on.
Michael Bromley 5 жил өмнө
parent
commit
16dd884638

+ 9 - 3
packages/email-plugin/src/default-email-handlers.ts

@@ -29,7 +29,9 @@ export const emailVerificationHandler = new EmailEventListener('email-verificati
     .setRecipient((event) => event.user.identifier)
     .setFrom(`{{ fromAddress }}`)
     .setSubject(`Please verify your email address`)
-    .setTemplateVars((event) => ({ user: event.user }))
+    .setTemplateVars((event) => ({
+        verificationToken: event.user.getNativeAuthenticationMethod().verificationToken,
+    }))
     .setMockEvent(mockAccountRegistrationEvent);
 
 export const passwordResetHandler = new EmailEventListener('password-reset')
@@ -37,7 +39,9 @@ export const passwordResetHandler = new EmailEventListener('password-reset')
     .setRecipient((event) => event.user.identifier)
     .setFrom(`{{ fromAddress }}`)
     .setSubject(`Forgotten password reset`)
-    .setTemplateVars((event) => ({ user: event.user }))
+    .setTemplateVars((event) => ({
+        passwordResetToken: event.user.getNativeAuthenticationMethod().passwordResetToken,
+    }))
     .setMockEvent(mockPasswordResetEvent);
 
 export const emailAddressChangeHandler = new EmailEventListener('email-address-change')
@@ -45,7 +49,9 @@ export const emailAddressChangeHandler = new EmailEventListener('email-address-c
     .setRecipient((event) => event.user.getNativeAuthenticationMethod().pendingIdentifier!)
     .setFrom(`{{ fromAddress }}`)
     .setSubject(`Please verify your change of email address`)
-    .setTemplateVars((event) => ({ user: event.user }))
+    .setTemplateVars((event) => ({
+        identifierChangeToken: event.user.getNativeAuthenticationMethod().identifierChangeToken,
+    }))
     .setMockEvent(mockEmailAddressChangeEvent);
 
 export const defaultEmailHandlers: Array<EmailEventHandler<any, any>> = [

+ 17 - 4
packages/email-plugin/src/mock-events.ts

@@ -2,6 +2,7 @@ import {
     AccountRegistrationEvent,
     Customer,
     IdentifierChangeRequestEvent,
+    NativeAuthenticationMethod,
     Order,
     OrderItem,
     OrderLine,
@@ -98,7 +99,11 @@ export const mockAccountRegistrationEvent = new AccountRegistrationEvent(
     {} as any,
     new User({
         verified: false,
-        verificationToken: 'MjAxOC0xMS0xM1QxNToxNToxNC42ODda_US2U6UK1WZC7NDAX',
+        authenticationMethods: [
+            new NativeAuthenticationMethod({
+                verificationToken: 'MjAxOC0xMS0xM1QxNToxNToxNC42ODda_US2U6UK1WZC7NDAX',
+            }),
+        ],
         identifier: 'test@test.com',
     }),
 );
@@ -107,7 +112,11 @@ export const mockPasswordResetEvent = new PasswordResetEvent(
     {} as any,
     new User({
         identifier: 'test@test.com',
-        passwordResetToken: 'MjAxOS0wNC0xNVQxMzozMDozOC43MjFa_MA2FR6HRZBW7JWD6',
+        authenticationMethods: [
+            new NativeAuthenticationMethod({
+                passwordResetToken: 'MjAxOS0wNC0xNVQxMzozMDozOC43MjFa_MA2FR6HRZBW7JWD6',
+            }),
+        ],
     }),
 );
 
@@ -115,7 +124,11 @@ export const mockEmailAddressChangeEvent = new IdentifierChangeRequestEvent(
     {} as any,
     new User({
         identifier: 'old-address@test.com',
-        pendingIdentifier: 'new-address@test.com',
-        identifierChangeToken: 'MjAxOS0wNC0xNVQxMzozMDozOC43MjFa_MA2FR6HRZBW7JWD6',
+        authenticationMethods: [
+            new NativeAuthenticationMethod({
+                pendingIdentifier: 'new-address@test.com',
+                identifierChangeToken: 'MjAxOS0wNC0xNVQxMzozMDozOC43MjFa_MA2FR6HRZBW7JWD6',
+            }),
+        ],
     }),
 );

+ 1 - 1
packages/email-plugin/templates/email-address-change/body.hbs

@@ -10,7 +10,7 @@
         <mj-button font-family="Helvetica"
                    background-color="#f45e43"
                    color="white"
-                   href="{{ changeEmailAddressUrl }}?token={{ user.identifierChangeToken }}">
+                   href="{{ changeEmailAddressUrl }}?token={{ identifierChangeToken }}">
             Verify Me!
         </mj-button>
     </mj-column>

+ 1 - 1
packages/email-plugin/templates/email-verification/body.hbs

@@ -10,7 +10,7 @@
         <mj-button font-family="Helvetica"
                    background-color="#f45e43"
                    color="white"
-                   href="{{ verifyEmailAddressUrl }}?token={{ user.verificationToken }}">
+                   href="{{ verifyEmailAddressUrl }}?token={{ verificationToken }}">
             Verify Me!
         </mj-button>
     </mj-column>

+ 1 - 1
packages/email-plugin/templates/password-reset/body.hbs

@@ -9,7 +9,7 @@
         <mj-button font-family="Helvetica"
                    background-color="#f45e43"
                    color="white"
-                   href="{{ passwordResetUrl }}?token={{ user.passwordResetToken }}">
+                   href="{{ passwordResetUrl }}?token={{ passwordResetToken }}">
             Reset password
         </mj-button>