Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
groupfolder activities on move/rename
Signed-off-by: Maxence Lange <[email protected]>
  • Loading branch information
ArtificialOwl authored and backportbot-nextcloud[bot] committed Jun 6, 2023
commit 9c62e90b6aa7d0b690a68971e8a3c7d95be14d28
23 changes: 22 additions & 1 deletion lib/FilesHooks.php
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,16 @@ public function fileMove($oldPath, $newPath) {
$this->moveCase = false;
return;
}
$this->oldAccessList = $this->getUserPathsFromPath($this->oldParentPath, $this->oldParentOwner);

$oldAccessList = $this->getUserPathsFromPath($this->oldParentPath, $this->oldParentOwner);

// file can be shared using GroupFolders, including ACL check
if ($this->config->getSystemValueBool('activity_use_cached_mountpoints', false)) {
[, , $oldFileId] = $this->getSourcePathAndOwner($oldPath);
$oldAccessList['users'] = array_merge($oldAccessList['users'], $this->getAffectedUsersFromCachedMounts($oldFileId));
}

$this->oldAccessList = $oldAccessList;
}


Expand Down Expand Up @@ -414,6 +423,12 @@ protected function fileRenaming($oldPath, $newPath) {
$this->generateRemoteActivity($renameRemotes, Files::TYPE_FILE_CHANGED, time(), $this->currentUser->getCloudId());

$affectedUsers = $accessList['users'];

// file can be shared using GroupFolders, including ACL check
if ($this->config->getSystemValueBool('activity_use_cached_mountpoints', false)) {
$affectedUsers = array_merge($affectedUsers, $this->getAffectedUsersFromCachedMounts($fileId));
}

[$filteredEmailUsers, $filteredNotificationUsers] = $this->getFileChangeActivitySettings($fileId, array_keys($affectedUsers));

foreach ($affectedUsers as $user => $path) {
Expand Down Expand Up @@ -463,6 +478,12 @@ protected function fileMoving($oldPath, $newPath) {
$affectedUsers = $accessList['users'];
$oldUsers = $this->oldAccessList['users'];

// file can be shared using GroupFolders, including ACL check
if ($this->config->getSystemValueBool('activity_use_cached_mountpoints', false)) {
$this->userMountCache->clear(); // clear cache for new data
$affectedUsers = array_merge($affectedUsers, $this->getAffectedUsersFromCachedMounts($fileId));
}

$beforeUsers = array_keys($oldUsers);
$afterUsers = array_keys($affectedUsers);

Expand Down