From 77fbb4125b95d6fb9c8572bffa007bcf77e16dfa Mon Sep 17 00:00:00 2001 From: Robin Appelman <icewind@owncloud.com> Date: Thu, 16 Apr 2015 15:13:00 +0200 Subject: [PATCH] propagate changes up reshares --- .../lib/propagation/recipientpropagator.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/files_sharing/lib/propagation/recipientpropagator.php b/apps/files_sharing/lib/propagation/recipientpropagator.php index da71612fd4d..e1b3523ca68 100644 --- a/apps/files_sharing/lib/propagation/recipientpropagator.php +++ b/apps/files_sharing/lib/propagation/recipientpropagator.php @@ -9,6 +9,7 @@ namespace OCA\Files_Sharing\Propagation; use OC\Files\Cache\ChangePropagator; +use OC\Files\View; use OC\Share\Share; /** @@ -91,6 +92,7 @@ class RecipientPropagator { } $this->config->setAppValue('files_sharing', $share['id'], $time); } + /** * Listen on the propagator for updates made to shares owned by a user * @@ -101,7 +103,15 @@ class RecipientPropagator { $propagator->listen('\OC\Files', 'propagate', function ($path, $entry) use ($owner) { $shares = Share::getAllSharesForFileId($entry['fileid']); foreach ($shares as $share) { + // propagate down the share tree $this->markDirty($share, time()); + + // propagate up the share tree + $user = $share['uid_owner']; + $view = new View('/' . $user . '/files'); + $path = $view->getPath($share['file_source']); + $watcher = new ChangeWatcher($view); + $watcher->writeHook(['path' => $path]); } }); } -- GitLab