summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2017-05-15 11:53:59 -0500
committerGitHub <noreply@github.com>2017-05-15 11:53:59 -0500
commitad0d0b0916fef2826803c0641371efa0c7e91d64 (patch)
treefafcc0d9f208e74d291eabd22316a8cddaef46dc
parent3f201ec7f3ed65ad672da14b55881ad4d678ce29 (diff)
parent9b750c08ac70efd13f97fe3076ad7a1d5d3af5a0 (diff)
downloadnextcloud-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.php7
-rw-r--r--lib/private/Files/View.php8
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));