Browse Source

catch all exception and return a user friendly exception message

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
tags/v11.0RC2
Bjoern Schiessle 7 years ago
parent
commit
4623b70cc9
No account linked to committer's email address

+ 11
- 4
apps/federatedfilesharing/lib/FederatedShareProvider.php View File

@@ -222,6 +222,8 @@ class FederatedShareProvider implements IShareProvider {
$token
);

$failure = false;

try {
$sharedByFederatedId = $share->getSharedBy();
if ($this->userManager->userExists($sharedByFederatedId)) {
@@ -239,17 +241,22 @@ class FederatedShareProvider implements IShareProvider {
);

if ($send === false) {
$message_t = $this->l->t('Sharing %s failed, could not find %s, maybe the server is currently unreachable.',
[$share->getNode()->getName(), $share->getSharedWith()]);
throw new \Exception($message_t);
$failure = true;
}
} catch (\Exception $e) {
$this->logger->error('Failed to notify remote server of federated share, removing share (' . $e->getMessage() . ')');
$failure = true;
}

if($failure) {
$this->removeShareFromTableById($shareId);
throw $e;
$message_t = $this->l->t('Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate.',
[$share->getNode()->getName(), $share->getSharedWith()]);
throw new \Exception($message_t);
}

return $shareId;

}

/**

+ 4
- 4
apps/federatedfilesharing/tests/FederatedShareProviderTest.php View File

@@ -227,7 +227,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$share = $this->provider->create($share);
$this->fail();
} catch (\Exception $e) {
$this->assertEquals('Sharing myFile failed, could not find user@server.com, maybe the server is currently unreachable.', $e->getMessage());
$this->assertEquals('Sharing myFile failed, could not find user@server.com, maybe the server is currently unreachable or uses a self-signed certificate.', $e->getMessage());
}

$qb = $this->connection->getQueryBuilder();
@@ -283,7 +283,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$share = $this->provider->create($share);
$this->fail();
} catch (\Exception $e) {
$this->assertEquals('dummy', $e->getMessage());
$this->assertEquals('Sharing myFile failed, could not find user@server.com, maybe the server is currently unreachable or uses a self-signed certificate.', $e->getMessage());
}

$qb = $this->connection->getQueryBuilder();
@@ -707,8 +707,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
$userManager = \OC::$server->getUserManager();
$rootFolder = \OC::$server->getRootFolder();

$u1 = $userManager->createUser('testFed', 'test');
$u2 = $userManager->createUser('testFed2', 'test');
$u1 = $userManager->createUser('testFed', md5(time()));
$u2 = $userManager->createUser('testFed2', md5(time()));

$folder1 = $rootFolder->getUserFolder($u1->getUID())->newFolder('foo');
$file1 = $folder1->newFile('bar1');

Loading…
Cancel
Save