diff options
Diffstat (limited to 'lib/private/files/node/node.php')
-rw-r--r-- | lib/private/files/node/node.php | 66 |
1 files changed, 44 insertions, 22 deletions
diff --git a/lib/private/files/node/node.php b/lib/private/files/node/node.php index 4c7d32cbd0e..e5b219420cd 100644 --- a/lib/private/files/node/node.php +++ b/lib/private/files/node/node.php @@ -1,28 +1,17 @@ <?php /** - * @author Bernhard Posselt <dev@bernhard-posselt.com> - * @author Joas Schilling <nickvergessen@gmx.de> - * @author Robin Appelman <icewind@owncloud.com> - * @author Vincent Petry <pvince81@owncloud.com> - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * + * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. */ + namespace OC\Files\Node; +use OC\Files\Filesystem; +use OCP\Files\FileInfo; +use OCP\Files\InvalidPathException; +use OCP\Files\NotFoundException; use OCP\Files\NotPermittedException; class Node implements \OCP\Files\Node { @@ -60,11 +49,21 @@ class Node implements \OCP\Files\Node { /** * Returns the matching file info * - * @return \OCP\Files\FileInfo + * @return FileInfo + * @throws InvalidPathException + * @throws NotFoundException */ public function getFileInfo() { + if (!Filesystem::isValidPath($this->path)) { + throw new InvalidPathException(); + } if (!$this->fileInfo) { - $this->fileInfo = $this->view->getFileInfo($this->path); + $fileInfo = $this->view->getFileInfo($this->path); + if ($fileInfo instanceof FileInfo) { + $this->fileInfo = $fileInfo; + } else { + throw new NotFoundException(); + } } return $this->fileInfo; } @@ -153,6 +152,8 @@ class Node implements \OCP\Files\Node { /** * @return int + * @throws InvalidPathException + * @throws NotFoundException */ public function getId() { return $this->getFileInfo()->getId(); @@ -167,6 +168,8 @@ class Node implements \OCP\Files\Node { /** * @return int + * @throws InvalidPathException + * @throws NotFoundException */ public function getMTime() { return $this->getFileInfo()->getMTime(); @@ -174,6 +177,8 @@ class Node implements \OCP\Files\Node { /** * @return int + * @throws InvalidPathException + * @throws NotFoundException */ public function getSize() { return $this->getFileInfo()->getSize(); @@ -181,6 +186,8 @@ class Node implements \OCP\Files\Node { /** * @return string + * @throws InvalidPathException + * @throws NotFoundException */ public function getEtag() { return $this->getFileInfo()->getEtag(); @@ -188,6 +195,8 @@ class Node implements \OCP\Files\Node { /** * @return int + * @throws InvalidPathException + * @throws NotFoundException */ public function getPermissions() { return $this->getFileInfo()->getPermissions(); @@ -195,6 +204,8 @@ class Node implements \OCP\Files\Node { /** * @return bool + * @throws InvalidPathException + * @throws NotFoundException */ public function isReadable() { return $this->getFileInfo()->isReadable(); @@ -202,6 +213,8 @@ class Node implements \OCP\Files\Node { /** * @return bool + * @throws InvalidPathException + * @throws NotFoundException */ public function isUpdateable() { return $this->getFileInfo()->isUpdateable(); @@ -209,6 +222,8 @@ class Node implements \OCP\Files\Node { /** * @return bool + * @throws InvalidPathException + * @throws NotFoundException */ public function isDeletable() { return $this->getFileInfo()->isDeletable(); @@ -216,11 +231,18 @@ class Node implements \OCP\Files\Node { /** * @return bool + * @throws InvalidPathException + * @throws NotFoundException */ public function isShareable() { return $this->getFileInfo()->isShareable(); } + /** + * @return bool + * @throws InvalidPathException + * @throws NotFoundException + */ public function isCreatable() { return $this->getFileInfo()->isCreatable(); } |