diff options
-rw-r--r-- | apps/federatedfilesharing/lib/FederatedShareProvider.php | 2 | ||||
-rw-r--r-- | lib/private/Federation/CloudIdManager.php | 5 | ||||
-rw-r--r-- | tests/lib/Federation/CloudIdManagerTest.php | 14 |
3 files changed, 10 insertions, 11 deletions
diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php index b8a584ce6be..fb49978b7af 100644 --- a/apps/federatedfilesharing/lib/FederatedShareProvider.php +++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php @@ -171,7 +171,7 @@ class FederatedShareProvider implements IShareProvider { } - $share->setSharedWith(rtrim($cloudId->getId(), '/')); + $share->setSharedWith($cloudId->getId()); try { $remoteShare = $this->getShareFromExternalShareTable($share); diff --git a/lib/private/Federation/CloudIdManager.php b/lib/private/Federation/CloudIdManager.php index 0df8f080d2d..2e6232fa862 100644 --- a/lib/private/Federation/CloudIdManager.php +++ b/lib/private/Federation/CloudIdManager.php @@ -34,7 +34,7 @@ class CloudIdManager implements ICloudIdManager { } // Find the first character that is not allowed in user names - $id = str_replace('\\', '/', $cloudId); + $id = $this->fixRemoteURL($cloudId); $posSlash = strpos($id, '/'); $posColon = strpos($id, ':'); @@ -58,9 +58,8 @@ class CloudIdManager implements ICloudIdManager { if ($pos !== false) { $user = substr($id, 0, $pos); $remote = substr($id, $pos + 1); - $remote = $this->fixRemoteURL($remote); if (!empty($user) && !empty($remote)) { - return new CloudId($cloudId, $user, $remote); + return new CloudId($id, $user, $remote); } } throw new \InvalidArgumentException('Invalid cloud id'); diff --git a/tests/lib/Federation/CloudIdManagerTest.php b/tests/lib/Federation/CloudIdManagerTest.php index 3f1cfabe202..fe673588bba 100644 --- a/tests/lib/Federation/CloudIdManagerTest.php +++ b/tests/lib/Federation/CloudIdManagerTest.php @@ -35,12 +35,11 @@ class CloudIdManagerTest extends TestCase { public function cloudIdProvider() { return [ - ['test@example.com', 'test', 'example.com'], - ['test@example.com/cloud', 'test', 'example.com/cloud'], - ['test@example.com/cloud/', 'test', 'example.com/cloud'], - ['test@example.com/cloud/index.php', 'test', 'example.com/cloud'], - ['test@example.com@example.com', 'test@example.com', 'example.com'], - ['test@example.com@example.com', 'test@example.com', 'example.com'], + ['test@example.com', 'test', 'example.com', 'test@example.com'], + ['test@example.com/cloud', 'test', 'example.com/cloud', 'test@example.com/cloud'], + ['test@example.com/cloud/', 'test', 'example.com/cloud', 'test@example.com/cloud'], + ['test@example.com/cloud/index.php', 'test', 'example.com/cloud', 'test@example.com/cloud'], + ['test@example.com@example.com', 'test@example.com', 'example.com', 'test@example.com@example.com'], ]; } @@ -51,11 +50,12 @@ class CloudIdManagerTest extends TestCase { * @param string $user * @param string $remote */ - public function testResolveCloudId($cloudId, $user, $remote) { + public function testResolveCloudId($cloudId, $user, $remote, $cleanId) { $cloudId = $this->cloudIdManager->resolveCloudId($cloudId); $this->assertEquals($user, $cloudId->getUser()); $this->assertEquals($remote, $cloudId->getRemote()); + $this->assertEquals($cleanId, $cloudId->getId()); } public function invalidCloudIdProvider() { |