[BUGFIX] fileExists() returns true for folders
authorAndreas Wolf <andreas.wolf@typo3.org>
Wed, 20 Jun 2012 13:56:11 +0000 (15:56 +0200)
committerAndreas Wolf <andreas.wolf@typo3.org>
Thu, 21 Jun 2012 09:10:06 +0000 (11:10 +0200)
The WebDAV protocol does not differ hard between files and folders. The
only way to tell if a resource is a file or folder is by considering the
name - if it ends in a slash, it is most likely a folder, if it does
not, it is a file. This commit changes the behaviour of fileExists() to
check for a trailing slash; folderExists() already did this before.

Classes/Driver/WebDavDriver.php

index d2106fc..87764e5 100644 (file)
@@ -324,7 +324,7 @@ class Tx_FalWebdav_Driver_WebDavDriver extends t3lib_file_Driver_AbstractDriver
         * @return bool
         */
        public function fileExists($identifier) {
-               return $this->resourceExists($identifier);
+               return substr($identifier, -1) !== '/' && $this->resourceExists($identifier);
        }
 
        /**
@@ -338,7 +338,7 @@ class Tx_FalWebdav_Driver_WebDavDriver extends t3lib_file_Driver_AbstractDriver
                // TODO add unit test
                $fileIdentifier = $folder->getIdentifier() . $fileName;
 
-               return $this->resourceExists($fileIdentifier);
+               return $this->fileExists($fileIdentifier);
        }
 
        /**