diff --git a/lib/UserSettings.php b/lib/UserSettings.php index 0c6ee5b7c..7eed94bf4 100644 --- a/lib/UserSettings.php +++ b/lib/UserSettings.php @@ -7,6 +7,7 @@ namespace OCA\Activity; +use OCA\Activity\Extension\Files; use OCP\Activity\ActivitySettings; use OCP\Activity\Exceptions\SettingNotFoundException; use OCP\Activity\IManager; @@ -173,9 +174,14 @@ public function getNotificationTypes() { $return = array_map(function (ActivitySettings $setting) { return $setting->getIdentifier(); }, $settings); - if (array_search('file_changed', $return) !== false) { - array_push($return, 'file_created', 'file_deleted', 'file_restored'); + + // TYPE_FILE_CHANGED is used to group all file changes together + // But we still differentiate between file_created, file_deleted and file_restored + // so let's add them to the list. + if (array_search(Files::TYPE_FILE_CHANGED, $return) !== false) { + array_push($return, Files::TYPE_SHARE_CREATED, Files::TYPE_SHARE_DELETED, Files::TYPE_SHARE_RESTORED); } + return $return; } @@ -197,6 +203,11 @@ public function filterUsersBySetting($users, $method, $type) { return []; } + // file_created, file_deleted and file_restored are grouped under file_changed + if ($type === Files::TYPE_SHARE_CREATED || $type === Files::TYPE_SHARE_DELETED || $type === Files::TYPE_SHARE_RESTORED) { + $type = Files::TYPE_FILE_CHANGED; + } + $filteredUsers = []; $potentialUsers = $this->config->getUserValueForUsers('activity', 'notify_' . $method . '_' . $type, $users); foreach ($potentialUsers as $user => $value) {