diff options
Diffstat (limited to 'apps/files_sharing')
-rw-r--r-- | apps/files_sharing/lib/external/storage.php | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/apps/files_sharing/lib/external/storage.php b/apps/files_sharing/lib/external/storage.php index 39e182feb60..3284a60172f 100644 --- a/apps/files_sharing/lib/external/storage.php +++ b/apps/files_sharing/lib/external/storage.php @@ -191,7 +191,7 @@ class Storage extends DAV implements ISharedStorage { throw new StorageInvalidException(); } else { // ownCloud instance is gone, likely to be a temporary server configuration error - throw $e; + throw new StorageNotAvailableException(); } } catch (ForbiddenException $e) { // auth error, remove share for now (provide a dialog in the future) @@ -201,10 +201,7 @@ class Storage extends DAV implements ISharedStorage { } catch (\GuzzleHttp\Exception\ConnectException $e) { throw new StorageNotAvailableException(); } catch (\GuzzleHttp\Exception\RequestException $e) { - if ($e->getCode() === 503) { - throw new StorageNotAvailableException(); - } - throw $e; + throw new StorageNotAvailableException(); } catch (\Exception $e) { throw $e; } @@ -250,16 +247,13 @@ class Storage extends DAV implements ISharedStorage { try { $response = $client->post($url, ['body' => ['password' => $password]]); } catch (\GuzzleHttp\Exception\RequestException $e) { - switch ($e->getCode()) { - case 401: - case 403: + if ($e->getCode() === 401 || $e->getCode() === 403) { throw new ForbiddenException(); - case 404: - throw new NotFoundException(); - case 500: - throw new \Exception(); } - throw $e; + // throw this to be on the safe side: the share will still be visible + // in the UI in case the failure is intermittent, and the user will + // be able to decide whether to remove it if it's really gone + throw new NotFoundException(); } return json_decode($response->getBody(), true); |