Skip to content

Commit 86f0cbf

Browse files
authored
Merge pull request #56664 from cristianscheid/feat/54790/transfer-ownership-use-user-id
feat(files): add --use-user-id option to transfer-ownership command
2 parents 5bf67fd + 9272a13 commit 86f0cbf

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

apps/files/lib/Command/TransferOwnership.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ protected function configure(): void {
7676
null,
7777
InputOption::VALUE_NONE,
7878
'don\'t ask for confirmation for transferring external storages',
79+
)
80+
->addOption(
81+
'use-user-id',
82+
null,
83+
InputOption::VALUE_NONE,
84+
'use user ID instead of display name in the transferred folder name',
7985
);
8086
}
8187

@@ -137,6 +143,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
137143
$input->getOption('move') === true,
138144
false,
139145
$includeExternalStorage,
146+
$input->getOption('use-user-id') === true,
140147
);
141148
} catch (TransferOwnershipException $e) {
142149
$output->writeln('<error>' . $e->getMessage() . '</error>');

apps/files/lib/Service/OwnershipTransferService.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public function transfer(
7373
bool $move = false,
7474
bool $firstLogin = false,
7575
bool $includeExternalStorage = false,
76+
bool $useUserId = false,
7677
): void {
7778
$output = $output ?? new NullOutput();
7879
$sourceUid = $sourceUser->getUID();
@@ -104,7 +105,15 @@ public function transfer(
104105
$l = $this->l10nFactory->get('files', $this->l10nFactory->getUserLanguage($destinationUser));
105106
$date = date('Y-m-d H-i-s');
106107

107-
$cleanUserName = $this->sanitizeFolderName($sourceUser->getDisplayName()) ?: $sourceUid;
108+
if ($useUserId) {
109+
$cleanUserName = $sourceUid;
110+
} else {
111+
$cleanUserName = $this->sanitizeFolderName($sourceUser->getDisplayName());
112+
if ($cleanUserName === '') {
113+
$cleanUserName = $sourceUid;
114+
}
115+
}
116+
108117
$finalTarget = "$destinationUid/files/" . $this->sanitizeFolderName($l->t('Transferred from %1$s on %2$s', [$cleanUserName, $date]));
109118
try {
110119
$view->verifyPath(dirname($finalTarget), basename($finalTarget));

0 commit comments

Comments
 (0)