[Pkg-owncloud-commits] [owncloud] 129/131: fix infinite loops with propagating etags on reshares

David Prévot taffit at moszumanska.debian.org
Tue Aug 11 15:58:46 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to annotated tag v8.1.1
in repository owncloud.

commit 78a46dcac127f3606647e339e1993f87d6b1088c
Author: Robin Appelman <icewind at owncloud.com>
Date:   Mon Aug 3 17:33:12 2015 +0200

    fix infinite loops with propagating etags on reshares
---
 .../lib/propagation/recipientpropagator.php           |  4 ++--
 apps/files_sharing/tests/etagpropagation.php          | 19 ++++++++++++++-----
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/apps/files_sharing/lib/propagation/recipientpropagator.php b/apps/files_sharing/lib/propagation/recipientpropagator.php
index 97ea452..1176410 100644
--- a/apps/files_sharing/lib/propagation/recipientpropagator.php
+++ b/apps/files_sharing/lib/propagation/recipientpropagator.php
@@ -133,8 +133,8 @@ class RecipientPropagator {
 			$this->markDirty($share, microtime(true));
 
 			// propagate up the share tree
-			$user = $share['uid_owner'];
-			if($user !== $this->userId) {
+			if ($share['share_with'] === $this->userId) {
+				$user = $share['uid_owner'];
 				$view = new View('/' . $user . '/files');
 				$path = $view->getPath($share['file_source']);
 				$watcher = new ChangeWatcher($view, $this->manager->getSharePropagator($user));
diff --git a/apps/files_sharing/tests/etagpropagation.php b/apps/files_sharing/tests/etagpropagation.php
index d978daf..8da4e6f 100644
--- a/apps/files_sharing/tests/etagpropagation.php
+++ b/apps/files_sharing/tests/etagpropagation.php
@@ -266,15 +266,15 @@ class EtagPropagation extends TestCase {
 			\OCP\Share::unshare(
 				'folder',
 				$folderId,
-			   	\OCP\Share::SHARE_TYPE_USER,
+				\OCP\Share::SHARE_TYPE_USER,
 				self::TEST_FILES_SHARING_API_USER2
 			)
 		);
 		$this->assertEtagsForFoldersChanged([
 			// direct recipient affected
-		   	self::TEST_FILES_SHARING_API_USER2,
+			self::TEST_FILES_SHARING_API_USER2,
 			// reshare recipient affected
-		   	self::TEST_FILES_SHARING_API_USER4,
+			self::TEST_FILES_SHARING_API_USER4,
 		]);
 
 		$this->assertAllUnchaged();
@@ -287,9 +287,9 @@ class EtagPropagation extends TestCase {
 		);
 		$this->assertEtagsForFoldersChanged([
 			// direct recipient affected
-		   	self::TEST_FILES_SHARING_API_USER2,
+			self::TEST_FILES_SHARING_API_USER2,
 			// reshare recipient affected
-		   	self::TEST_FILES_SHARING_API_USER4,
+			self::TEST_FILES_SHARING_API_USER4,
 		]);
 
 		$this->assertAllUnchaged();
@@ -398,4 +398,13 @@ class EtagPropagation extends TestCase {
 
 		$this->assertAllUnchaged();
 	}
+
+	public function testRecipientUploadInDirectReshare() {
+		$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
+		Filesystem::file_put_contents('/directReshare/test.txt', 'sad');
+		$this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER3]);
+		$this->assertEtagsChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2, self::TEST_FILES_SHARING_API_USER4]);
+
+		$this->assertAllUnchaged();
+	}
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list