From e3a327c3f9a7fa4139e387978affda35a9bffe89 Mon Sep 17 00:00:00 2001 From: titanism <101466223+titanism@users.noreply.github.com> Date: Thu, 25 Apr 2024 13:34:36 -0500 Subject: [PATCH] fix: fixed my account > logs view not working for email related logs --- app/controllers/web/my-account/retrieve-log.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/controllers/web/my-account/retrieve-log.js b/app/controllers/web/my-account/retrieve-log.js index 168862377c..66ecececc3 100644 --- a/app/controllers/web/my-account/retrieve-log.js +++ b/app/controllers/web/my-account/retrieve-log.js @@ -76,7 +76,7 @@ async function retrieveLog(ctx, next) { // TODO: ensure that `log.meta.session.envelope.mailFrom.address` is valid // (logged in user must either be alias owner or domain admin) // - if (log.email) { + if (log?.email || log?.meta?.email) { // validation safeguard if ( !isSANB(log.meta.session.envelope.mailFrom.address) || @@ -124,7 +124,11 @@ async function retrieveLog(ctx, next) { // // filter recipients (iff `email` not set) // - if (!log.email && Array.isArray(log?.meta?.session?.envelope?.rcptTo)) + if ( + !log.email && + !log?.meta?.email && + Array.isArray(log?.meta?.session?.envelope?.rcptTo) + ) log.meta.session.envelope.rcptTo = log.meta.session.envelope.rcptTo.filter( (rcpt) => { // get the portion without the "+" symbol since aliases don't permit use of "+" (automatic support) @@ -167,7 +171,11 @@ async function retrieveLog(ctx, next) { ); // check recipient length after filtering - if (log.meta.session.envelope.rcptTo.length === 0) + if ( + !log.email && + !log?.meta?.email && + log.meta.session.envelope.rcptTo.length === 0 + ) throw Boom.badRequest(ctx.translateError('LOG_DOES_NOT_EXIST')); ctx.state.log = log;