From 6989b2f3e31c2fa53027816546cebfeaa516480d Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Mon, 27 Apr 2020 10:48:35 +0300 Subject: [PATCH] Fix array access in FederatedShareProvider --- .../lib/FederatedShareProvider.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php index a00148d90670..1c4242b20915 100644 --- a/apps/federatedfilesharing/lib/FederatedShareProvider.php +++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php @@ -240,7 +240,7 @@ protected function createFederatedShare(IShare $share) { $ownerAddress = $this->addressHandler->getLocalUserFederatedAddress($owner); $sharedWith = $share->getSharedWith(); $shareWithAddress = new Address($sharedWith); - $status = $this->notifications->sendRemoteShare( + $result = $this->notifications->sendRemoteShare( $shareWithAddress, $ownerAddress, $sharedByAddress, @@ -252,8 +252,16 @@ protected function createFederatedShare(IShare $share) { /* Check for failure or null return from sending and pick up an error message * if there is one coming from the remote server, otherwise use a generic one. */ - if (!$status || $status['ocs']['meta']['status'] === 'failure') { - $msg = $status['ocs']['meta']['message'] ?? false; + if (\is_bool($result)) { + $status = $result; + } elseif (isset($result['ocs']['meta']['status'])) { + $status = $result['ocs']['meta']['status']; + } else { + $status = false; + } + + if ($status === false) { + $msg = $result['ocs']['meta']['message'] ?? false; if (!$msg) { $message_t = $this->l->t('Sharing %s failed, could not find %s, maybe the server is currently unreachable.', [$share->getNode()->getName(), $share->getSharedWith()]);