Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 18 additions & 8 deletions lib/private/Files/Filesystem.php
Original file line number Diff line number Diff line change
Expand Up @@ -395,26 +395,36 @@ public static function initMountPoints($user = '') {
throw new \OC\User\NoUserException('Attempted to initialize mount points for null user and no user in session');
}

if (isset(self::$usersSetup[$user])) {
return;
}

self::$usersSetup[$user] = true;

$userManager = \OC::$server->getUserManager();
$userObject = $userManager->get($user);

if (is_null($userObject)) {
\OCP\Util::writeLog('files', ' Backends provided no user object for ' . $user, \OCP\Util::ERROR);
// reset flag, this will make it possible to rethrow the exception if called again
unset(self::$usersSetup[$user]);
throw new \OC\User\NoUserException('Backends provided no user object for ' . $user);
}

$realUid = $userObject->getUID();
// workaround in case of different casings
if ($user !== $userObject->getUID()) {
if ($user !== $realUid) {
$stack = json_encode(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 50));
\OCP\Util::writeLog('files', 'initMountPoints() called with wrong user casing. This could be a bug. Expected: "' . $userObject->getUID() . '" got "' . $user . '". Stack: ' . $stack, \OCP\Util::WARN);
}
$user = $userObject->getUID();
\OCP\Util::writeLog('files', 'initMountPoints() called with wrong user casing. This could be a bug. Expected: "' . $realUid . '" got "' . $user . '". Stack: ' . $stack, \OCP\Util::WARN);
$user = $realUid;

if (isset(self::$usersSetup[$user])) {
return;
}
// again with the correct casing
if (isset(self::$usersSetup[$user])) {
return;
}

self::$usersSetup[$user] = true;
self::$usersSetup[$user] = true;
}

/** @var \OC\Files\Config\MountProviderCollection $mountConfigManager */
$mountConfigManager = \OC::$server->getMountProviderCollection();
Expand Down