Skip to content

Commit

Permalink
Merge pull request #1163 from nextcloud/enh/noid/gf-activity-on-move
Browse files Browse the repository at this point in the history
groupfolder activities on move/rename
  • Loading branch information
ArtificialOwl authored Jun 6, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
2 parents f19219d + 853772f commit d7f95d8
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion lib/FilesHooks.php
Original file line number Diff line number Diff line change
@@ -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;
}


@@ -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) {
@@ -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);

0 comments on commit d7f95d8

Please sign in to comment.