clean cloud ids

Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
Robin Appelman 2017-02-09 13:31:06 +01:00
parent ae66cf8d37
commit f6cd5200a2
No known key found for this signature in database
GPG Key ID: CBCA68FBAEBF98C9
3 changed files with 10 additions and 11 deletions

View File

@ -171,7 +171,7 @@ class FederatedShareProvider implements IShareProvider {
}
$share->setSharedWith(rtrim($cloudId->getId(), '/'));
$share->setSharedWith($cloudId->getId());
try {
$remoteShare = $this->getShareFromExternalShareTable($share);

View File

@ -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');

View File

@ -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() {