diff options
author | Morris Jobke <hey@morrisjobke.de> | 2017-05-15 11:53:59 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-15 11:53:59 -0500 |
commit | ad0d0b0916fef2826803c0641371efa0c7e91d64 (patch) | |
tree | fafcc0d9f208e74d291eabd22316a8cddaef46dc | |
parent | 3f201ec7f3ed65ad672da14b55881ad4d678ce29 (diff) | |
parent | 9b750c08ac70efd13f97fe3076ad7a1d5d3af5a0 (diff) | |
download | nextcloud-server-ad0d0b0916fef2826803c0641371efa0c7e91d64.tar.gz nextcloud-server-ad0d0b0916fef2826803c0641371efa0c7e91d64.zip |
Merge pull request #4685 from nextcloud/fix_4683
fix permissions of mountpoints - take 2
-rw-r--r-- | apps/files_sharing/tests/SharedStorageTest.php | 7 | ||||
-rw-r--r-- | lib/private/Files/View.php | 8 |
2 files changed, 10 insertions, 5 deletions
diff --git a/apps/files_sharing/tests/SharedStorageTest.php b/apps/files_sharing/tests/SharedStorageTest.php index 7d007cb6414..195016c47d1 100644 --- a/apps/files_sharing/tests/SharedStorageTest.php +++ b/apps/files_sharing/tests/SharedStorageTest.php @@ -207,10 +207,11 @@ class SharedStorageTest extends TestCase { $this->assertTrue(\OC\Files\Filesystem::is_dir($this->folder)); // for the share root we expect: - // the read permissions (1) - // the delete permission (8), to enable unshare + // the read permissions + // the delete permission, to enable unshare + // the update permission, to enable moving the share $rootInfo = \OC\Files\Filesystem::getFileInfo($this->folder); - $this->assertSame(9, $rootInfo->getPermissions()); + $this->assertSame(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_DELETE | \OCP\Constants::PERMISSION_UPDATE, $rootInfo->getPermissions()); // for the file within the shared folder we expect: // the read permissions (1) diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php index 0e22415e6f7..18942d05acf 100644 --- a/lib/private/Files/View.php +++ b/lib/private/Files/View.php @@ -1355,8 +1355,12 @@ class View { return false; } - if ($mount instanceof MoveableMount && $internalPath === '') { - $data['permissions'] |= \OCP\Constants::PERMISSION_DELETE; + if ($internalPath === '') { + if ($mount instanceof MoveableMount) { + $data['permissions'] = $data['permissions'] | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE; + } else { + $data['permissions'] = $data['permissions'] & (\OCP\Constants::PERMISSION_ALL - (\OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE)); + } } $owner = $this->getUserObjectForOwner($storage->getOwner($internalPath)); |