Merge pull request #4685 from nextcloud/fix_4683

fix permissions of mountpoints - take 2
This commit is contained in:
Morris Jobke 2017-05-15 11:53:59 -05:00 committed by GitHub
commit ad0d0b0916
2 changed files with 10 additions and 5 deletions

View File

@ -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)

View File

@ -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));