From 642ea0be8c0b7023025d147912578b0bf5e8c1a7 Mon Sep 17 00:00:00 2001 From: yemkareems Date: Tue, 24 Sep 2024 17:13:15 +0530 Subject: [PATCH 1/6] fix: do not send daily digest email to user who is disabled --- lib/DigestSender.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/DigestSender.php b/lib/DigestSender.php index 94a26c41d..a457095f7 100644 --- a/lib/DigestSender.php +++ b/lib/DigestSender.php @@ -123,7 +123,7 @@ public function sendDigestForUser(string $uid, int $now, string $timezone, strin $this->groupHelper->setL10n($l10n); $lastSend = $this->getLastSendActivity($uid, $now); $user = $this->userManager->get($uid); - if ($lastSend === 0) { + if ($lastSend === 0 || !$user->isEnabled()) { return; } $this->activityManager->setCurrentUserId($uid); From 459d5df7e8199482103aac0ce189c79a3d57d34d Mon Sep 17 00:00:00 2001 From: yemkareems Date: Wed, 9 Oct 2024 10:24:22 +0530 Subject: [PATCH 2/6] fix: do not send digest email for disabled user --- lib/DigestSender.php | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/DigestSender.php b/lib/DigestSender.php index a457095f7..6c941c0cc 100644 --- a/lib/DigestSender.php +++ b/lib/DigestSender.php @@ -29,6 +29,7 @@ use OCP\IConfig; use OCP\IDateTimeFormatter; use OCP\IURLGenerator; +use OCP\IUser; use OCP\IUserManager; use OCP\L10N\IFactory; use OCP\Mail\IMailer; @@ -83,6 +84,12 @@ public function sendDigests(int $now): void { // User got todays digest already continue; } + $user = $this->userManager->get($user); + if(!$user->isEnabled()) { + // User is disabled so do not send the email but update last sent since after enabling avoid flooding + $this->updateLastSentForUser($user, $now); + continue; + } try { $this->sendDigestForUser($user, $now, $timezone, $language); @@ -118,12 +125,22 @@ private function getLastSendActivity(string $user, int $now): int { return $this->data->getFirstActivitySince($user, $now - (24 * 60 * 60)); } - public function sendDigestForUser(string $uid, int $now, string $timezone, string $language) { + public function updateLastSentForUser(IUser $user, int $now): void { + $uid = $user->getUID(); + $lastSend = $this->getLastSendActivity($uid, $now); + + ['count' => $count, 'max' => $lastActivityId] = $this->data->getActivitySince($uid, $lastSend, true); + $lastActivityId = (int)$lastActivityId; + + $this->config->setUserValue($uid, 'activity', 'activity_digest_last_send', (string)$lastActivityId); + } + + public function sendDigestForUser(IUser $user, int $now, string $timezone, string $language) { + $uid = $user->getUID(); $l10n = $this->l10nFactory->get('activity', $language); $this->groupHelper->setL10n($l10n); $lastSend = $this->getLastSendActivity($uid, $now); - $user = $this->userManager->get($uid); - if ($lastSend === 0 || !$user->isEnabled()) { + if ($lastSend === 0) { return; } $this->activityManager->setCurrentUserId($uid); From bc9893c2e818bcb71d88ab41cb66579317734015 Mon Sep 17 00:00:00 2001 From: yemkareems Date: Tue, 15 Oct 2024 10:18:29 +0530 Subject: [PATCH 3/6] fix: cs fix and psalm error fix --- lib/DigestSender.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/DigestSender.php b/lib/DigestSender.php index 6c941c0cc..22c25a6fb 100644 --- a/lib/DigestSender.php +++ b/lib/DigestSender.php @@ -85,7 +85,7 @@ public function sendDigests(int $now): void { continue; } $user = $this->userManager->get($user); - if(!$user->isEnabled()) { + if (!$user->isEnabled()) { // User is disabled so do not send the email but update last sent since after enabling avoid flooding $this->updateLastSentForUser($user, $now); continue; @@ -100,7 +100,7 @@ public function sendDigests(int $now): void { } // We still update the digest time after an failed email, // so it hopefully works tomorrow - $this->config->setUserValue($user, 'activity', 'digest', $timezoneDigestDay[$timezone]); + $this->config->setUserValue($user->getUID(), 'activity', 'digest', $timezoneDigestDay[$timezone]); } $this->activityManager->setRequirePNG(false); From 95c42f9d37dd2d3f5376a1a223d1a139004c720d Mon Sep 17 00:00:00 2001 From: yemkareems Date: Fri, 18 Oct 2024 10:10:34 +0530 Subject: [PATCH 4/6] fix: updateLastSentForUser changed to private and removed count as it is not used Signed-off-by: yemkareems --- lib/DigestSender.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/DigestSender.php b/lib/DigestSender.php index 22c25a6fb..fd0393fe2 100644 --- a/lib/DigestSender.php +++ b/lib/DigestSender.php @@ -125,11 +125,11 @@ private function getLastSendActivity(string $user, int $now): int { return $this->data->getFirstActivitySince($user, $now - (24 * 60 * 60)); } - public function updateLastSentForUser(IUser $user, int $now): void { + private function updateLastSentForUser(IUser $user, int $now): void { $uid = $user->getUID(); $lastSend = $this->getLastSendActivity($uid, $now); - ['count' => $count, 'max' => $lastActivityId] = $this->data->getActivitySince($uid, $lastSend, true); + ['max' => $lastActivityId] = $this->data->getActivitySince($uid, $lastSend, true); $lastActivityId = (int)$lastActivityId; $this->config->setUserValue($uid, 'activity', 'activity_digest_last_send', (string)$lastActivityId); From ffa158d688062fd1e3fa0201d8b65df86871059e Mon Sep 17 00:00:00 2001 From: yemkareems Date: Mon, 28 Oct 2024 10:08:45 +0530 Subject: [PATCH 5/6] fix: user renamed to userObject Signed-off-by: yemkareems [skip ci] --- lib/DigestSender.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/DigestSender.php b/lib/DigestSender.php index fd0393fe2..08dafc260 100644 --- a/lib/DigestSender.php +++ b/lib/DigestSender.php @@ -84,15 +84,15 @@ public function sendDigests(int $now): void { // User got todays digest already continue; } - $user = $this->userManager->get($user); - if (!$user->isEnabled()) { + $userObject = $this->userManager->get($user); + if (!$userObject->isEnabled()) { // User is disabled so do not send the email but update last sent since after enabling avoid flooding - $this->updateLastSentForUser($user, $now); + $this->updateLastSentForUser($userObject, $now); continue; } try { - $this->sendDigestForUser($user, $now, $timezone, $language); + $this->sendDigestForUser($userObject, $now, $timezone, $language); } catch (\Throwable $e) { $this->logger->error('Exception occurred while sending user digest email', [ 'exception' => $e, @@ -100,7 +100,7 @@ public function sendDigests(int $now): void { } // We still update the digest time after an failed email, // so it hopefully works tomorrow - $this->config->setUserValue($user->getUID(), 'activity', 'digest', $timezoneDigestDay[$timezone]); + $this->config->setUserValue($userObject->getUID(), 'activity', 'digest', $timezoneDigestDay[$timezone]); } $this->activityManager->setRequirePNG(false); From c16b5bb313bb4a545bb8fec3339eea7b0243e1c5 Mon Sep 17 00:00:00 2001 From: yemkareems Date: Tue, 29 Oct 2024 09:08:36 +0530 Subject: [PATCH 6/6] fix: conflicts resolved Signed-off-by: yemkareems --- lib/DigestSender.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/DigestSender.php b/lib/DigestSender.php index 08dafc260..22963db31 100644 --- a/lib/DigestSender.php +++ b/lib/DigestSender.php @@ -146,8 +146,8 @@ public function sendDigestForUser(IUser $user, int $now, string $timezone, strin $this->activityManager->setCurrentUserId($uid); ['count' => $count, 'max' => $lastActivityId] = $this->data->getActivitySince($uid, $lastSend, true); - $count = (int) $count; - $lastActivityId = (int) $lastActivityId; + $count = (int)$count; + $lastActivityId = (int)$lastActivityId; if ($count === 0) { return; } @@ -202,7 +202,7 @@ public function sendDigestForUser(IUser $user, int $now, string $timezone, strin $this->activityManager->setCurrentUserId(null); try { $this->mailer->send($message); - $this->config->setUserValue($user->getUID(), 'activity', 'activity_digest_last_send', (string) $lastActivityId); + $this->config->setUserValue($uid, 'activity', 'activity_digest_last_send', (string)$lastActivityId); } catch (\Exception $e) { $this->logger->error($e->getMessage()); return; @@ -223,9 +223,9 @@ protected function getHTMLSubject(IEvent $event): string { $placeholders[] = '{' . $placeholder . '}'; if ($parameter['type'] === 'file') { - $replacement = (string) $parameter['path']; + $replacement = (string)$parameter['path']; } else { - $replacement = (string) $parameter['name']; + $replacement = (string)$parameter['name']; } if (isset($parameter['link'])) {