]> source.dussan.org Git - nextcloud-server.git/commitdiff
cach user folder for file search results
authorJörn Friedrich Dreyer <jfd@butonic.de>
Mon, 13 Apr 2015 09:29:10 +0000 (11:29 +0200)
committerJörn Friedrich Dreyer <jfd@butonic.de>
Mon, 13 Apr 2015 09:29:10 +0000 (11:29 +0200)
lib/private/search/result/file.php

index be9c34b6e48852d65fc2b18705c66a38c64c142c..50b74e1ced2396ec6fb4131a8be03da9e0891922 100644 (file)
@@ -25,6 +25,7 @@
 namespace OC\Search\Result;
 use OC\Files\Filesystem;
 use OCP\Files\FileInfo;
+use OCP\Files\Folder;
 
 /**
  * A found file
@@ -91,6 +92,11 @@ class File extends \OCP\Search\Result {
                $this->mime = $data->getMimetype();
        }
 
+       /**
+        * @var Folder $userFolderCache
+        */
+       static protected $userFolderCache = null;
+
        /**
         * converts a path relative to the users files folder
         * eg /user/files/foo.txt -> /foo.txt
@@ -98,8 +104,11 @@ class File extends \OCP\Search\Result {
         * @return string relative path
         */
        protected function getRelativePath ($path) {
-               $root = \OC::$server->getUserFolder();
-               return $root->getRelativePath($path);
+               if (!isset(self::$userFolderCache)) {
+                       $user = \OC::$server->getUserSession()->getUser()->getUID();
+                       self::$userFolderCache = \OC::$server->getUserFolder($user);
+               }
+               return self::$userFolderCache->getRelativePath($path);
        }
 
 }