diff --git a/lib/FilesHooks.php b/lib/FilesHooks.php index f29def7d1..40d3b53b6 100755 --- a/lib/FilesHooks.php +++ b/lib/FilesHooks.php @@ -190,16 +190,20 @@ private function getFileChangeActivitySettings(int $fileId, array $users): array $filteredEmailUsers = $this->userSettings->filterUsersBySetting($users, 'email', Files::TYPE_FILE_CHANGED); $filteredNotificationUsers = $this->userSettings->filterUsersBySetting($users, 'notification', Files::TYPE_FILE_CHANGED); - $favoriteUsers = $this->tagManager->getUsersFavoritingObject($fileId); - if (!empty($favoriteUsers)) { - $favoriteUsers = array_intersect($users, $favoriteUsers); + if ($this->tagManager !== null) { + $favoriteUsers = $this->tagManager->getUsersFavoritingObject($fileId); if (!empty($favoriteUsers)) { - $filteredEmailUsers = array_merge($filteredEmailUsers, $this->userSettings->filterUsersBySetting($favoriteUsers, 'email', Files::TYPE_FAVORITE_CHANGED)); - $filteredNotificationUsers = array_merge($filteredNotificationUsers, $this->userSettings->filterUsersBySetting($favoriteUsers, 'notification', Files::TYPE_FAVORITE_CHANGED)); + $favoriteUsers = array_intersect($users, $favoriteUsers); + if (!empty($favoriteUsers)) { + $filteredEmailUsers = array_merge($filteredEmailUsers, $this->userSettings->filterUsersBySetting($favoriteUsers, 'email', Files::TYPE_FAVORITE_CHANGED)); + $filteredNotificationUsers = array_merge($filteredNotificationUsers, $this->userSettings->filterUsersBySetting($favoriteUsers, 'notification', Files::TYPE_FAVORITE_CHANGED)); + } } + + return [$filteredEmailUsers, $filteredNotificationUsers]; } - return [$filteredEmailUsers, $filteredNotificationUsers]; + return [[null], [null]]; } /** diff --git a/tests/FilesHooksTest.php b/tests/FilesHooksTest.php index 6b0017a59..fbb49a716 100755 --- a/tests/FilesHooksTest.php +++ b/tests/FilesHooksTest.php @@ -143,7 +143,7 @@ protected function getFilesHooks(array $mockedMethods = [], string $user = 'user $this->notificationGenerator, $this->tagManager ]) - ->onlyMethods($mockedMethods) + ->setMethods($mockedMethods) ->getMock(); } @@ -891,7 +891,7 @@ public function testShareNotificationForOriginalOwners(bool $validMountPoint, bo if ($validMountPoint) { $storage = $this->getMockBuilder(SharedStorage::class) ->disableOriginalConstructor() - ->onlyMethods([ + ->setMethods([ 'instanceOfStorage', 'getSharedFrom', ]) @@ -1066,4 +1066,11 @@ public function testAddNotificationsForUser(string $user, string $subject, array self::invokePrivate($this->filesHooks, 'addNotificationsForUser', [$user, $subject, $parameter, $fileId, $path, $isFile, $email, $notification, $type]); } + + public function testPublicLinkActivity() { + $fileHooks = $this->getFilesHooks(); + $result = $this->invokePrivate($fileHooks, 'getFileChangeActivitySettings', [12, ['user']]); + + $this->assertEquals([null, null], $result); + } }