From 55d943fd4b35c9df3e3639d6f264e4f8d8df82f0 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 8 Mar 2022 17:13:06 +0100 Subject: [PATCH] fixed when accessing static filesystem calls before setup Signed-off-by: Robin Appelman --- lib/private/Files/Filesystem.php | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/lib/private/Files/Filesystem.php b/lib/private/Files/Filesystem.php index 9db9252037f..20b44e2736a 100644 --- a/lib/private/Files/Filesystem.php +++ b/lib/private/Files/Filesystem.php @@ -46,6 +46,7 @@ use OCP\Files\NotFoundException; use OCP\Files\Storage\IStorageFactory; use OCP\IUser; use OCP\IUserManager; +use OCP\IUserSession; class Filesystem { @@ -321,6 +322,18 @@ class Filesystem { } public static function init($user, $root) { + if (self::$defaultInstance) { + return false; + } + self::initInternal($root); + + //load custom mount config + self::initMountPoints($user); + + return true; + } + + public static function initInternal($root) { if (self::$defaultInstance) { return false; } @@ -338,9 +351,6 @@ class Filesystem { self::$mounts = \OC::$server->getMountManager(); } - //load custom mount config - self::initMountPoints($user); - self::$loaded = true; return true; @@ -378,6 +388,15 @@ class Filesystem { * @return View */ public static function getView() { + if (!self::$defaultInstance) { + /** @var IUserSession $session */ + $session = \OC::$server->get(IUserSession::class); + $user = $session->getUser(); + if ($user) { + $userDir = '/' . $user->getUID() . '/files'; + self::initInternal($userDir); + } + } return self::$defaultInstance; } @@ -736,7 +755,7 @@ class Filesystem { * @return \OC\Files\FileInfo|false False if file does not exist */ public static function getFileInfo($path, $includeMountPoints = true) { - return self::$defaultInstance->getFileInfo($path, $includeMountPoints); + return self::getView()->getFileInfo($path, $includeMountPoints); } /** -- 2.39.5