From 3277ae6d4ab6794a5040bed4018b1e0fe52ae911 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Thu, 11 Dec 2025 15:05:56 -0300 Subject: [PATCH] fix: check activity settings only when user account exists When identification method is email and person has no account, notification was being blocked by activity check for non-existent user. Now checks if user exists before verifying activity notification settings. Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- lib/Listener/MailNotifyListener.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/Listener/MailNotifyListener.php b/lib/Listener/MailNotifyListener.php index d5d4b4dbd..e289592c0 100644 --- a/lib/Listener/MailNotifyListener.php +++ b/lib/Listener/MailNotifyListener.php @@ -60,13 +60,11 @@ class MailNotifyListener implements IEventListener { if ($identifyMethod->getEntity()->isDeletedAccount()) { return; } - if ($this->isNotificationDisabledAtActivity($identifyMethod->getEntity()->getIdentifierValue(), SendSignNotificationEvent::FILE_TO_SIGN)) { - return; - } $email = ''; if ($identifyMethod->getName() === 'account') { + $userId = $identifyMethod->getEntity()->getIdentifierValue(); $email = $this->userManager - ->get($identifyMethod->getEntity()->getIdentifierValue()) + ->get($userId) ->getEMailAddress(); } elseif ($identifyMethod->getName() === 'email') { $email = $identifyMethod->getEntity()->getIdentifierValue(); @@ -74,6 +72,15 @@ class MailNotifyListener implements IEventListener { if (empty($email)) { return; } + + $users = $this->userManager->getByEmail($email); + if (count($users) === 1) { + $userId = $users[0]->getUID(); + if ($this->isNotificationDisabledAtActivity($userId, SendSignNotificationEvent::FILE_TO_SIGN)) { + return; + } + } + $isFirstNotification = $this->signRequestMapper->incrementNotificationCounter($signRequest, 'mail'); if ($isFirstNotification) { $this->mail->notifyUnsignedUser($signRequest, $email);