From 65f52fee4f333cc31591a265c2d5b4c0ed0d7016 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 7 Mar 2014 14:52:44 +0100 Subject: [PATCH 1/2] Fix FileInfo->getType errors --- lib/private/files/fileinfo.php | 9 ++++++++- lib/public/files/fileinfo.php | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/private/files/fileinfo.php b/lib/private/files/fileinfo.php index 2dbdd80a26..a9e64fe153 100644 --- a/lib/private/files/fileinfo.php +++ b/lib/private/files/fileinfo.php @@ -53,6 +53,9 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { } public function offsetGet($offset) { + if ($offset === 'type') { + return $this->getType(); + } return $this->data[$offset]; } @@ -144,7 +147,11 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { * @return \OCP\Files\FileInfo::TYPE_FILE | \OCP\Files\FileInfo::TYPE_FOLDER */ public function getType() { - return $this->data['type']; + if (isset($this->data['type'])) { + return $this->data['type']; + } else { + return $this->getMimetype() === 'httpd/unix-directory' ? self::TYPE_FOLDER : self::TYPE_FILE; + } } public function getData(){ diff --git a/lib/public/files/fileinfo.php b/lib/public/files/fileinfo.php index 68ce45d3fa..37162e0933 100644 --- a/lib/public/files/fileinfo.php +++ b/lib/public/files/fileinfo.php @@ -9,7 +9,7 @@ namespace OCP\Files; interface FileInfo { const TYPE_FILE = 'file'; - const TYPE_FOLDER = 'folder'; + const TYPE_FOLDER = 'dir'; /** * Get the Etag of the file or folder From 51165a1a04a8a97a5d7ac684b0588a86c01a0018 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 7 Mar 2014 15:16:35 +0100 Subject: [PATCH 2/2] Check if value exists before returning --- lib/private/files/fileinfo.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/private/files/fileinfo.php b/lib/private/files/fileinfo.php index a9e64fe153..d6940f50bf 100644 --- a/lib/private/files/fileinfo.php +++ b/lib/private/files/fileinfo.php @@ -55,8 +55,11 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { public function offsetGet($offset) { if ($offset === 'type') { return $this->getType(); + } elseif (isset($this->data[$offset])) { + return $this->data[$offset]; + } else { + return null; } - return $this->data[$offset]; } /** @@ -154,7 +157,7 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { } } - public function getData(){ + public function getData() { return $this->data; }