diff options
Diffstat (limited to 'apps/files_sharing/lib/propagation')
3 files changed, 14 insertions, 4 deletions
diff --git a/apps/files_sharing/lib/propagation/changewatcher.php b/apps/files_sharing/lib/propagation/changewatcher.php index 9da3ffe51a2..e61c161da19 100644 --- a/apps/files_sharing/lib/propagation/changewatcher.php +++ b/apps/files_sharing/lib/propagation/changewatcher.php @@ -99,4 +99,12 @@ class ChangeWatcher { $propagator->propagateChanges(); } } + + public function permissionsHook($params) { + $share = $params['share']; + + if ($share['item_type'] === 'file' || $share['item_type'] === 'folder') { + $this->recipientPropagator->markDirty($share, microtime(true)); + } + } } diff --git a/apps/files_sharing/lib/propagation/propagationmanager.php b/apps/files_sharing/lib/propagation/propagationmanager.php index 35048f89cfb..6ed70e93f84 100644 --- a/apps/files_sharing/lib/propagation/propagationmanager.php +++ b/apps/files_sharing/lib/propagation/propagationmanager.php @@ -25,6 +25,7 @@ use OC\Files\Filesystem; use OC\Files\View; use OCP\IConfig; use OCP\IUserSession; +use OCP\Util; /** @@ -134,8 +135,9 @@ class PropagationManager { // for marking shares owned by the active user as dirty when a file inside them changes $this->listenToOwnerChanges($user->getUID(), $user->getUID()); - \OC_Hook::connect('OC_Filesystem', 'post_write', $watcher, 'writeHook'); - \OC_Hook::connect('OC_Filesystem', 'post_delete', $watcher, 'writeHook'); - \OC_Hook::connect('OC_Filesystem', 'post_rename', $watcher, 'renameHook'); + Util::connectHook('OC_Filesystem', 'post_write', $watcher, 'writeHook'); + Util::connectHook('OC_Filesystem', 'post_delete', $watcher, 'writeHook'); + Util::connectHook('OC_Filesystem', 'post_rename', $watcher, 'renameHook'); + Util::connectHook('OCP\Share', 'post_update_permissions', $watcher, 'permissionsHook'); } } diff --git a/apps/files_sharing/lib/propagation/recipientpropagator.php b/apps/files_sharing/lib/propagation/recipientpropagator.php index 420cacb3d2f..8e064e2ee54 100644 --- a/apps/files_sharing/lib/propagation/recipientpropagator.php +++ b/apps/files_sharing/lib/propagation/recipientpropagator.php @@ -105,7 +105,7 @@ class RecipientPropagator { /** * @param array $share - * @param int $time + * @param float $time */ public function markDirty($share, $time = null) { if ($time === null) { |