From ccd1d0783a0d1c6bbdafc5010f427617beb3787b Mon Sep 17 00:00:00 2001 From: Jennie Robinson Faber Date: Sat, 4 Apr 2026 13:27:47 +0100 Subject: [PATCH] fix: use canonical member email for series registration when authenticated --- server/api/series/[id]/tickets/purchase.post.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/server/api/series/[id]/tickets/purchase.post.js b/server/api/series/[id]/tickets/purchase.post.js index bcf1ba9..740a752 100644 --- a/server/api/series/[id]/tickets/purchase.post.js +++ b/server/api/series/[id]/tickets/purchase.post.js @@ -44,9 +44,12 @@ export default defineEventHandler(async (event) => { member = await Member.findOne({ email: email.toLowerCase() }); } + // Resolve canonical email: use authenticated member's email if available + const canonicalEmail = member ? member.email : email.toLowerCase(); + // Validate purchase const validation = validateSeriesTicketPurchase(series, { - email, + email: canonicalEmail, name, member, }); @@ -80,7 +83,7 @@ export default defineEventHandler(async (event) => { const registration = { memberId: member?._id, name, - email: email.toLowerCase(), + email: canonicalEmail, membershipLevel: member?.circle || "non-member", isMember: !!member, ticketType: ticketInfo.ticketType, @@ -115,7 +118,7 @@ export default defineEventHandler(async (event) => { // Send confirmation email try { await sendSeriesPassConfirmation({ - to: email, + to: canonicalEmail, name, series: { title: series.title,