summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2017-06-16 10:47:08 +0200
committerGitHub <noreply@github.com>2017-06-16 10:47:08 +0200
commit698a7cb7f0d15d2eee1854d1e7412e618dcc059e (patch)
tree4c4cdd99ca8fbffe30caa534ba6684aae465c588 /apps
parent74654288e64cfb80e950d223c8575b32d04682a0 (diff)
parentb6d6f3c521ac119b56c045a2379bbe4c4f416d6c (diff)
downloadnextcloud-server-698a7cb7f0d15d2eee1854d1e7412e618dcc059e.tar.gz
nextcloud-server-698a7cb7f0d15d2eee1854d1e7412e618dcc059e.zip
Merge pull request #5124 from nextcloud/allow-dirlisting-with-unreadable-items
Allow dir-listing also when one child is blocked by access control
Diffstat (limited to 'apps')
-rw-r--r--apps/dav/lib/Connector/Sabre/FilesPlugin.php6
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php9
2 files changed, 11 insertions, 4 deletions
diff --git a/apps/dav/lib/Connector/Sabre/FilesPlugin.php b/apps/dav/lib/Connector/Sabre/FilesPlugin.php
index 30eeaaacf63..efc9a42e5f5 100644
--- a/apps/dav/lib/Connector/Sabre/FilesPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/FilesPlugin.php
@@ -288,10 +288,16 @@ class FilesPlugin extends ServerPlugin {
$httpRequest = $this->server->httpRequest;
if ($node instanceof \OCA\DAV\Connector\Sabre\Node) {
+ /**
+ * This was disabled, because it made dir listing throw an exception,
+ * so users were unable to navigate into folders where one subitem
+ * is blocked by the files_accesscontrol app, see:
+ * https://github.com/nextcloud/files_accesscontrol/issues/65
if (!$node->getFileInfo()->isReadable()) {
// avoid detecting files through this means
throw new NotFound();
}
+ */
$propFind->handle(self::FILEID_PROPERTYNAME, function() use ($node) {
return $node->getFileId();
diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php
index 739c8f62540..885f3c23c24 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php
@@ -341,11 +341,12 @@ class FilesPluginTest extends TestCase {
$this->assertEquals('my_fingerprint', $propFind->get(self::DATA_FINGERPRINT_PROPERTYNAME));
}
- /**
- * @expectedException \Sabre\DAV\Exception\NotFound
- */
public function testGetPropertiesWhenNoPermission() {
- /** @var \OCA\DAV\Connector\Sabre\Directory | \PHPUnit_Framework_MockObject_MockObject $node */
+ // No read permissions can be caused by files access control.
+ // But we still want to load the directory list, so this is okay for us.
+ // $this->expectException(\Sabre\DAV\Exception\NotFound::class);
+
+ /** @var \OCA\DAV\Connector\Sabre\Directory|\PHPUnit_Framework_MockObject_MockObject $node */
$node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory')
->disableOriginalConstructor()
->getMock();