From 40d311875162dfee2be3b4533e5f30dfdc5d682a Mon Sep 17 00:00:00 2001 From: Cristian Scheid Date: Tue, 25 Nov 2025 11:45:40 -0300 Subject: [PATCH 1/3] feat(files): add --use-user-id option to transfer-ownership command Signed-off-by: Cristian Scheid --- apps/files/lib/Command/TransferOwnership.php | 7 +++++++ apps/files/lib/Service/OwnershipTransferService.php | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) 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)); From fa2a7b9b2de27ede018f95e1b682949e70e51814 Mon Sep 17 00:00:00 2001 From: Cristian Scheid Date: Mon, 1 Dec 2025 07:36:18 -0300 Subject: [PATCH 2/3] refactor(files): use explicit empty check instead of elvis operator Signed-off-by: Cristian Scheid --- apps/files/lib/Service/OwnershipTransferService.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/files/lib/Service/OwnershipTransferService.php b/apps/files/lib/Service/OwnershipTransferService.php index aca05e24c10..7c000cc454b 100644 --- a/apps/files/lib/Service/OwnershipTransferService.php +++ b/apps/files/lib/Service/OwnershipTransferService.php @@ -108,9 +108,12 @@ class OwnershipTransferService { if ($useUserId) { $cleanUserName = $sourceUid; } else { - $cleanUserName = $this->sanitizeFolderName($sourceUser->getDisplayName()) ?: $sourceUid; + $cleanUserName = $this->sanitizeFolderName($sourceUser->getDisplayName()); + if (empty($cleanUserName)) { + $cleanUserName = $sourceUid; + } } - + $finalTarget = "$destinationUid/files/" . $this->sanitizeFolderName($l->t('Transferred from %1$s on %2$s', [$cleanUserName, $date])); try { $view->verifyPath(dirname($finalTarget), basename($finalTarget)); From 9272a13e9df13f53bdba384c15f0493b6733f995 Mon Sep 17 00:00:00 2001 From: Cristian Scheid <74515775+cristianscheid@users.noreply.github.com> Date: Mon, 1 Dec 2025 09:52:59 -0300 Subject: [PATCH 3/3] refactor(files): use strict string comparison instead of empty() Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com> Signed-off-by: Cristian Scheid <74515775+cristianscheid@users.noreply.github.com> --- apps/files/lib/Service/OwnershipTransferService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/lib/Service/OwnershipTransferService.php b/apps/files/lib/Service/OwnershipTransferService.php index 7c000cc454b..d15c49ed577 100644 --- a/apps/files/lib/Service/OwnershipTransferService.php +++ b/apps/files/lib/Service/OwnershipTransferService.php @@ -109,7 +109,7 @@ class OwnershipTransferService { $cleanUserName = $sourceUid; } else { $cleanUserName = $this->sanitizeFolderName($sourceUser->getDisplayName()); - if (empty($cleanUserName)) { + if ($cleanUserName === '') { $cleanUserName = $sourceUid; } }