Merge pull request #1770 from nextcloud/backport-1766-force-uid-casing-on-transfer-ownership-9
[stable9] Make sure the UID is correctly cased
This commit is contained in:
commit
eb47c20bdc
|
@ -28,6 +28,7 @@ use OC\Files\Filesystem;
|
|||
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 @@ class TransferOwnership extends Command {
|
|||
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("<error>Unknown source user $this->sourceUser</error>");
|
||||
return;
|
||||
}
|
||||
if (!$this->userManager->userExists($this->destinationUser)) {
|
||||
if (!$destination instanceof IUser) {
|
||||
$output->writeln("<error>Unknown destination user $this->destinationUser</error>");
|
||||
return;
|
||||
}
|
||||
|
||||
$this->sourceUser = $source->getUID();
|
||||
$this->destinationUser = $destination->getUID();
|
||||
|
||||
// target user has to be ready
|
||||
if (!\OC::$server->getEncryptionManager()->isReadyForUser($this->destinationUser)) {
|
||||
$output->writeln("<error>The target user is not ready to accept files. The user has at least to be logged in once.</error>");
|
||||
|
|
|
@ -155,6 +155,16 @@ class Manager extends PublicEmitter implements IUserManager {
|
|||
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;
|
||||
|
|
Loading…
Reference in New Issue