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