diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2016-03-10 20:53:56 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2016-03-10 20:53:56 +0100 |
commit | b7adf371c609c93087c6fb66cc2fd261a7f80d46 (patch) | |
tree | 9a0a55daa10d165308b2522a1585d276cfbfd7ec /apps/dav | |
parent | b3c1379b8c15f4f81cbf1d2a3f4c63e41b4406ed (diff) | |
download | nextcloud-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.php | 20 | ||||
-rw-r--r-- | apps/dav/lib/files/fileshome.php | 5 | ||||
-rw-r--r-- | apps/dav/tests/unit/connector/sabre/filesplugin.php | 52 |
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'); |