diff --git a/apps/files/lib/Command/TransferOwnership.php b/apps/files/lib/Command/TransferOwnership.php index f7663e26f28..05016bbc0b1 100644 --- a/apps/files/lib/Command/TransferOwnership.php +++ b/apps/files/lib/Command/TransferOwnership.php @@ -76,6 +76,12 @@ class TransferOwnership extends Command { null, InputOption::VALUE_NONE, 'don\'t ask for confirmation for transferring external storages', + ) + ->addOption( + 'use-user-id', + null, + InputOption::VALUE_NONE, + 'use user ID instead of display name in the transferred folder name', ); } @@ -137,6 +143,7 @@ class TransferOwnership extends Command { $input->getOption('move') === true, false, $includeExternalStorage, + $input->getOption('use-user-id') === true, ); } catch (TransferOwnershipException $e) { $output->writeln('' . $e->getMessage() . ''); diff --git a/apps/files/lib/Service/OwnershipTransferService.php b/apps/files/lib/Service/OwnershipTransferService.php index afef5d2093d..aca05e24c10 100644 --- a/apps/files/lib/Service/OwnershipTransferService.php +++ b/apps/files/lib/Service/OwnershipTransferService.php @@ -73,6 +73,7 @@ class OwnershipTransferService { bool $move = false, bool $firstLogin = false, bool $includeExternalStorage = false, + bool $useUserId = false, ): void { $output = $output ?? new NullOutput(); $sourceUid = $sourceUser->getUID(); @@ -104,7 +105,12 @@ class OwnershipTransferService { $l = $this->l10nFactory->get('files', $this->l10nFactory->getUserLanguage($destinationUser)); $date = date('Y-m-d H-i-s'); - $cleanUserName = $this->sanitizeFolderName($sourceUser->getDisplayName()) ?: $sourceUid; + if ($useUserId) { + $cleanUserName = $sourceUid; + } else { + $cleanUserName = $this->sanitizeFolderName($sourceUser->getDisplayName()) ?: $sourceUid; + } + $finalTarget = "$destinationUid/files/" . $this->sanitizeFolderName($l->t('Transferred from %1$s on %2$s', [$cleanUserName, $date])); try { $view->verifyPath(dirname($finalTarget), basename($finalTarget));