mirror of
https://github.com/nextcloud/server.git
synced 2026-06-11 09:42:09 -04:00
Merge pull request #46124 from nextcloud/fix/ownership-transfer-source-user-files
fix: Fix "Unknown path" error when source user `files` folder has not been initialized
This commit is contained in:
commit
94692cd57b
1 changed files with 5 additions and 3 deletions
|
|
@ -50,6 +50,7 @@ class OwnershipTransferService {
|
|||
private IUserMountCache $userMountCache,
|
||||
private IUserManager $userManager,
|
||||
private IFactory $l10nFactory,
|
||||
private IRootFolder $rootFolder,
|
||||
) {
|
||||
$this->encryptionManager = $encryptionManager;
|
||||
}
|
||||
|
|
@ -88,8 +89,10 @@ class OwnershipTransferService {
|
|||
// Requesting the user folder will set it up if the user hasn't logged in before
|
||||
// We need a setupFS for the full filesystem setup before as otherwise we will just return
|
||||
// a lazy root folder which does not create the destination users folder
|
||||
\OC_Util::setupFS($sourceUser->getUID());
|
||||
\OC_Util::setupFS($destinationUser->getUID());
|
||||
\OC::$server->getUserFolder($destinationUser->getUID());
|
||||
$this->rootFolder->getUserFolder($sourceUser->getUID());
|
||||
$this->rootFolder->getUserFolder($destinationUser->getUID());
|
||||
Filesystem::initMountPoints($sourceUid);
|
||||
Filesystem::initMountPoints($destinationUid);
|
||||
|
||||
|
|
@ -419,7 +422,6 @@ class OwnershipTransferService {
|
|||
):void {
|
||||
$output->writeln('Restoring shares ...');
|
||||
$progress = new ProgressBar($output, count($shares));
|
||||
$rootFolder = Server::get(IRootFolder::class);
|
||||
|
||||
foreach ($shares as ['share' => $share, 'suffix' => $suffix]) {
|
||||
try {
|
||||
|
|
@ -459,7 +461,7 @@ class OwnershipTransferService {
|
|||
} catch (NotFoundException) {
|
||||
// ID has changed due to transfer between different storages
|
||||
// Try to get the new ID from the target path and suffix of the share
|
||||
$node = $rootFolder->get(Filesystem::normalizePath($targetLocation . '/' . $suffix));
|
||||
$node = $this->rootFolder->get(Filesystem::normalizePath($targetLocation . '/' . $suffix));
|
||||
$newNodeId = $node->getId();
|
||||
$output->writeln('Had to change node id to ' . $newNodeId, OutputInterface::VERBOSITY_VERY_VERBOSE);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue