summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/federatedfilesharing/lib/FederatedShareProvider.php2
-rw-r--r--lib/private/Federation/CloudIdManager.php5
-rw-r--r--tests/lib/Federation/CloudIdManagerTest.php14
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() {