Browse Source

clean cloud ids

Signed-off-by: Robin Appelman <robin@icewind.nl>
tags/v12.0.0beta1
Robin Appelman 7 years ago
parent
commit
f6cd5200a2
No account linked to committer's email address

+ 1
- 1
apps/federatedfilesharing/lib/FederatedShareProvider.php View File

} }




$share->setSharedWith(rtrim($cloudId->getId(), '/'));
$share->setSharedWith($cloudId->getId());


try { try {
$remoteShare = $this->getShareFromExternalShareTable($share); $remoteShare = $this->getShareFromExternalShareTable($share);

+ 2
- 3
lib/private/Federation/CloudIdManager.php View File

} }


// Find the first character that is not allowed in user names // Find the first character that is not allowed in user names
$id = str_replace('\\', '/', $cloudId);
$id = $this->fixRemoteURL($cloudId);
$posSlash = strpos($id, '/'); $posSlash = strpos($id, '/');
$posColon = strpos($id, ':'); $posColon = strpos($id, ':');


if ($pos !== false) { if ($pos !== false) {
$user = substr($id, 0, $pos); $user = substr($id, 0, $pos);
$remote = substr($id, $pos + 1); $remote = substr($id, $pos + 1);
$remote = $this->fixRemoteURL($remote);
if (!empty($user) && !empty($remote)) { if (!empty($user) && !empty($remote)) {
return new CloudId($cloudId, $user, $remote);
return new CloudId($id, $user, $remote);
} }
} }
throw new \InvalidArgumentException('Invalid cloud id'); throw new \InvalidArgumentException('Invalid cloud id');

+ 7
- 7
tests/lib/Federation/CloudIdManagerTest.php View File



public function cloudIdProvider() { public function cloudIdProvider() {
return [ 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'],
]; ];
} }


* @param string $user * @param string $user
* @param string $remote * @param string $remote
*/ */
public function testResolveCloudId($cloudId, $user, $remote) {
public function testResolveCloudId($cloudId, $user, $remote, $cleanId) {
$cloudId = $this->cloudIdManager->resolveCloudId($cloudId); $cloudId = $this->cloudIdManager->resolveCloudId($cloudId);


$this->assertEquals($user, $cloudId->getUser()); $this->assertEquals($user, $cloudId->getUser());
$this->assertEquals($remote, $cloudId->getRemote()); $this->assertEquals($remote, $cloudId->getRemote());
$this->assertEquals($cleanId, $cloudId->getId());
} }


public function invalidCloudIdProvider() { public function invalidCloudIdProvider() {

Loading…
Cancel
Save