aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2016-03-10 20:53:56 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2016-03-10 20:53:56 +0100
commitb7adf371c609c93087c6fb66cc2fd261a7f80d46 (patch)
tree9a0a55daa10d165308b2522a1585d276cfbfd7ec /apps/dav
parentb3c1379b8c15f4f81cbf1d2a3f4c63e41b4406ed (diff)
downloadnextcloud-server-b7adf371c609c93087c6fb66cc2fd261a7f80d46.tar.gz
nextcloud-server-b7adf371c609c93087c6fb66cc2fd261a7f80d46.zip
getOwner is not available on FileHome - fixes #23116
Diffstat (limited to 'apps/dav')
-rw-r--r--apps/dav/lib/connector/sabre/filesplugin.php20
-rw-r--r--apps/dav/lib/files/fileshome.php5
-rw-r--r--apps/dav/tests/unit/connector/sabre/filesplugin.php52
3 files changed, 65 insertions, 12 deletions
diff --git a/apps/dav/lib/connector/sabre/filesplugin.php b/apps/dav/lib/connector/sabre/filesplugin.php
index 4b05922adfd..e973b4e8682 100644
--- a/apps/dav/lib/connector/sabre/filesplugin.php
+++ b/apps/dav/lib/connector/sabre/filesplugin.php
@@ -235,6 +235,16 @@ class FilesPlugin extends \Sabre\DAV\ServerPlugin {
$propFind->handle(self::GETETAG_PROPERTYNAME, function() use ($node) {
return $node->getEtag();
});
+
+ $propFind->handle(self::OWNER_ID_PROPERTYNAME, function() use ($node) {
+ $owner = $node->getOwner();
+ return $owner->getUID();
+ });
+ $propFind->handle(self::OWNER_DISPLAY_NAME_PROPERTYNAME, function() use ($node) {
+ $owner = $node->getOwner();
+ $displayName = $owner->getDisplayName();
+ return $displayName;
+ });
}
if ($node instanceof \OCA\DAV\Connector\Sabre\File) {
@@ -267,16 +277,6 @@ class FilesPlugin extends \Sabre\DAV\ServerPlugin {
return $node->getSize();
});
}
-
- $propFind->handle(self::OWNER_ID_PROPERTYNAME, function() use ($node) {
- $owner = $node->getOwner();
- return $owner->getUID();
- });
- $propFind->handle(self::OWNER_DISPLAY_NAME_PROPERTYNAME, function() use ($node) {
- $owner = $node->getOwner();
- $displayName = $owner->getDisplayName();
- return $displayName;
- });
}
/**
diff --git a/apps/dav/lib/files/fileshome.php b/apps/dav/lib/files/fileshome.php
index d56b95881c3..ef572d6618b 100644
--- a/apps/dav/lib/files/fileshome.php
+++ b/apps/dav/lib/files/fileshome.php
@@ -29,6 +29,11 @@ use Sabre\HTTP\URLUtil;
class FilesHome implements ICollection {
/**
+ * @var array
+ */
+ private $principalInfo;
+
+ /**
* FilesHome constructor.
*
* @param array $principalInfo
diff --git a/apps/dav/tests/unit/connector/sabre/filesplugin.php b/apps/dav/tests/unit/connector/sabre/filesplugin.php
index c363ece374a..0a790ec6fc9 100644
--- a/apps/dav/tests/unit/connector/sabre/filesplugin.php
+++ b/apps/dav/tests/unit/connector/sabre/filesplugin.php
@@ -109,8 +109,6 @@ class FilesPlugin extends \Test\TestCase {
return $node;
}
- /**
- */
public function testGetPropertiesForFile() {
$node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
@@ -165,6 +163,56 @@ class FilesPlugin extends \Test\TestCase {
$this->assertEquals(array(self::SIZE_PROPERTYNAME), $propFind->get404Properties());
}
+ public function testGetPropertiesForFileHome() {
+ $node = $this->createTestNode('\OCA\DAV\Files\FilesHome');
+
+ $propFind = new \Sabre\DAV\PropFind(
+ '/dummyPath',
+ array(
+ self::GETETAG_PROPERTYNAME,
+ self::FILEID_PROPERTYNAME,
+ self::INTERNAL_FILEID_PROPERTYNAME,
+ self::SIZE_PROPERTYNAME,
+ self::PERMISSIONS_PROPERTYNAME,
+ self::DOWNLOADURL_PROPERTYNAME,
+ self::OWNER_ID_PROPERTYNAME,
+ self::OWNER_DISPLAY_NAME_PROPERTYNAME
+ ),
+ 0
+ );
+
+ $user = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $user->expects($this->never())->method('getUID');
+ $user->expects($this->never())->method('getDisplayName');
+ $node->expects($this->never())->method('getDirectDownload');
+ $node->expects($this->never())->method('getOwner');
+ $node->expects($this->never())->method('getSize');
+
+ $this->plugin->handleGetProperties(
+ $propFind,
+ $node
+ );
+
+ $this->assertEquals(null, $propFind->get(self::GETETAG_PROPERTYNAME));
+ $this->assertEquals(null, $propFind->get(self::FILEID_PROPERTYNAME));
+ $this->assertEquals(null, $propFind->get(self::INTERNAL_FILEID_PROPERTYNAME));
+ $this->assertEquals(null, $propFind->get(self::SIZE_PROPERTYNAME));
+ $this->assertEquals(null, $propFind->get(self::PERMISSIONS_PROPERTYNAME));
+ $this->assertEquals(null, $propFind->get(self::DOWNLOADURL_PROPERTYNAME));
+ $this->assertEquals(null, $propFind->get(self::OWNER_ID_PROPERTYNAME));
+ $this->assertEquals(null, $propFind->get(self::OWNER_DISPLAY_NAME_PROPERTYNAME));
+ $this->assertEquals(['{DAV:}getetag',
+ '{http://owncloud.org/ns}id',
+ '{http://owncloud.org/ns}fileid',
+ '{http://owncloud.org/ns}size',
+ '{http://owncloud.org/ns}permissions',
+ '{http://owncloud.org/ns}downloadURL',
+ '{http://owncloud.org/ns}owner-id',
+ '{http://owncloud.org/ns}owner-display-name'
+ ], $propFind->get404Properties());
+ }
+
public function testGetPropertiesStorageNotAvailable() {
$node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');