diff --git a/apps/files/command/transferownership.php b/apps/files/command/transferownership.php
index d3994bbdf9f58..96ed8fbbb8465 100644
--- a/apps/files/command/transferownership.php
+++ b/apps/files/command/transferownership.php
@@ -28,6 +28,7 @@
use OC\Files\View;
use OCP\Files\FileInfo;
use OCP\Files\Mount\IMountManager;
+use OCP\IUser;
use OCP\IUserManager;
use OCP\Share\IManager;
use OCP\Share\IShare;
@@ -92,15 +93,21 @@ protected function configure() {
protected function execute(InputInterface $input, OutputInterface $output) {
$this->sourceUser = $input->getArgument('source-user');
$this->destinationUser = $input->getArgument('destination-user');
- if (!$this->userManager->userExists($this->sourceUser)) {
+ $source = $this->userManager->get($this->sourceUser);
+ $destination = $this->userManager->get($this->destinationUser);
+
+ if (!$source instanceof IUser) {
$output->writeln("Unknown source user $this->sourceUser");
return;
}
- if (!$this->userManager->userExists($this->destinationUser)) {
+ if (!$destination instanceof IUser) {
$output->writeln("Unknown destination user $this->destinationUser");
return;
}
-
+
+ $this->sourceUser = $source->getUID();
+ $this->destinationUser = $destination->getUID();
+
// target user has to be ready
if (!\OC::$server->getEncryptionManager()->isReadyForUser($this->destinationUser)) {
$output->writeln("The target user is not ready to accept files. The user has at least to be logged in once.");
diff --git a/lib/private/user/manager.php b/lib/private/user/manager.php
index eb86873a26f2b..e638823ad297a 100644
--- a/lib/private/user/manager.php
+++ b/lib/private/user/manager.php
@@ -155,6 +155,16 @@ protected function getUserObject($uid, $backend, $cacheUser = true) {
return $this->cachedUsers[$uid];
}
+ if (method_exists($backend, 'loginName2UserName')) {
+ $loginName = $backend->loginName2UserName($uid);
+ if ($loginName !== false) {
+ $uid = $loginName;
+ }
+ if (isset($this->cachedUsers[$uid])) {
+ return $this->cachedUsers[$uid];
+ }
+ }
+
$user = new User($uid, $backend, $this, $this->config);
if ($cacheUser) {
$this->cachedUsers[$uid] = $user;