mirror of
https://github.com/nextcloud/server.git
synced 2026-04-22 14:50:17 -04:00
fix(federation): ICloudId->getRemote() should contain the protocol
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
1722739a44
commit
575e7d8dba
2 changed files with 10 additions and 7 deletions
|
|
@ -174,7 +174,6 @@ class CloudIdManager implements ICloudIdManager {
|
|||
// note that for remote id's we don't strip the protocol for the remote we use to construct the CloudId
|
||||
// this way if a user has an explicit non-https cloud id this will be preserved
|
||||
// we do still use the version without protocol for looking up the display name
|
||||
$remote = $this->removeProtocolFromUrl($remote, true);
|
||||
$remote = $this->fixRemoteURL($remote);
|
||||
$host = $this->removeProtocolFromUrl($remote);
|
||||
|
||||
|
|
@ -191,7 +190,9 @@ class CloudIdManager implements ICloudIdManager {
|
|||
} else {
|
||||
$displayName = $this->getDisplayNameFromContact($user . '@' . $host);
|
||||
}
|
||||
$id = $user . '@' . $remote;
|
||||
|
||||
// For the visible cloudID we only strip away https
|
||||
$id = $user . '@' . $this->removeProtocolFromUrl($remote, true);
|
||||
|
||||
$data = [
|
||||
'id' => $id,
|
||||
|
|
|
|||
|
|
@ -128,11 +128,11 @@ class CloudIdManagerTest extends TestCase {
|
|||
return [
|
||||
['test', 'example.com', 'test@example.com'],
|
||||
['test', 'http://example.com', 'test@http://example.com', 'test@example.com'],
|
||||
['test', null, 'test@http://example.com', 'test@example.com', 'http://example.com'],
|
||||
['test', null, 'test@http://example.com', 'test@example.com', 'http://example.com', 'http://example.com'],
|
||||
['test@example.com', 'example.com', 'test@example.com@example.com'],
|
||||
['test@example.com', 'https://example.com', 'test@example.com@example.com'],
|
||||
['test@example.com', null, 'test@example.com@example.com'],
|
||||
['test@example.com', 'https://example.com/index.php/s/shareToken', 'test@example.com@example.com'],
|
||||
['test@example.com', null, 'test@example.com@example.com', null, 'https://example.com', 'https://example.com'],
|
||||
['test@example.com', 'https://example.com/index.php/s/shareToken', 'test@example.com@example.com', null, 'https://example.com', 'https://example.com'],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -143,7 +143,7 @@ class CloudIdManagerTest extends TestCase {
|
|||
* @param null|string $remote
|
||||
* @param string $id
|
||||
*/
|
||||
public function testGetCloudId(string $user, ?string $remote, string $id, ?string $searchCloudId = null, ?string $localHost = 'https://example.com'): void {
|
||||
public function testGetCloudId(string $user, ?string $remote, string $id, ?string $searchCloudId = null, ?string $localHost = 'https://example.com', ?string $expectedRemoteId = null): void {
|
||||
if ($remote !== null) {
|
||||
$this->contactsManager->expects($this->any())
|
||||
->method('search')
|
||||
|
|
@ -159,9 +159,11 @@ class CloudIdManagerTest extends TestCase {
|
|||
->method('getAbsoluteUrl')
|
||||
->willReturn($localHost);
|
||||
}
|
||||
$expectedRemoteId ??= $remote;
|
||||
|
||||
$cloudId = $this->cloudIdManager->getCloudId($user, $remote);
|
||||
|
||||
$this->assertEquals($id, $cloudId->getId());
|
||||
$this->assertEquals($id, $cloudId->getId(), 'Cloud ID');
|
||||
$this->assertEquals($expectedRemoteId, $cloudId->getRemote(), 'Remote URL');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue