From 8fbbf91581086ee63d4d60aa837c34220d7373ce Mon Sep 17 00:00:00 2001 From: c4539 Date: Thu, 10 Aug 2017 21:07:04 +0200 Subject: [PATCH 1/3] Check CLOUD for trailing @ --- .../lib/Controller/ShareesAPIController.php | 49 ++++++++++--------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/apps/files_sharing/lib/Controller/ShareesAPIController.php b/apps/files_sharing/lib/Controller/ShareesAPIController.php index 0e94cfb9d7c94..451ee77278885 100644 --- a/apps/files_sharing/lib/Controller/ShareesAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareesAPIController.php @@ -610,32 +610,35 @@ protected function getEmail($search) { $exactEmailMatch = strtolower($emailAddress) === $lowerSearch; if (isset($contact['isLocalSystemBook'])) { - if ($exactEmailMatch) { - $cloud = $this->cloudIdManager->resolveCloudId($contact['CLOUD'][0]); - if (!$this->hasUserInResult($cloud->getUser())) { - $this->result['exact']['users'][] = [ - 'label' => $contact['FN'] . " ($emailAddress)", - 'value' => [ - 'shareType' => Share::SHARE_TYPE_USER, - 'shareWith' => $cloud->getUser(), - ], - ]; + // check whether CLOUD ends with @, which is probably a leftover from an earlier version of OwnCloud + if (!(strlen($contact['CLOUD'][0) > 0 && substr_compare($contact['CLOUD'][0], "@", strlen($contact['CLOUD'][0])-strlen("@"), strlen("@")) === 0) { + if ($exactEmailMatch) { + $cloud = $this->cloudIdManager->resolveCloudId($contact['CLOUD'][0]); + if (!$this->hasUserInResult($cloud->getUser())) { + $this->result['exact']['users'][] = [ + 'label' => $contact['FN'] . " ($emailAddress)", + 'value' => [ + 'shareType' => Share::SHARE_TYPE_USER, + 'shareWith' => $cloud->getUser(), + ], + ]; + } + return ['results' => [], 'exact' => [], 'exactIdMatch' => true]; } - return ['results' => [], 'exact' => [], 'exactIdMatch' => true]; - } - if ($this->shareeEnumeration) { - $cloud = $this->cloudIdManager->resolveCloudId($contact['CLOUD'][0]); - if (!$this->hasUserInResult($cloud->getUser())) { - $this->result['users'][] = [ - 'label' => $contact['FN'] . " ($emailAddress)", - 'value' => [ - 'shareType' => Share::SHARE_TYPE_USER, - 'shareWith' => $cloud->getUser(), - ], - ]; + if ($this->shareeEnumeration) { + $cloud = $this->cloudIdManager->resolveCloudId($contact['CLOUD'][0]); + if (!$this->hasUserInResult($cloud->getUser())) { + $this->result['users'][] = [ + 'label' => $contact['FN'] . " ($emailAddress)", + 'value' => [ + 'shareType' => Share::SHARE_TYPE_USER, + 'shareWith' => $cloud->getUser(), + ], + ]; + } } + continue; } - continue; } if ($exactEmailMatch || strtolower($contact['FN']) === $lowerSearch) { From 62e3b8a3966d5c3af7b0a6e177f936bd0173c799 Mon Sep 17 00:00:00 2001 From: c4539 Date: Thu, 10 Aug 2017 21:25:09 +0200 Subject: [PATCH 2/3] adding missing ) --- apps/files_sharing/lib/Controller/ShareesAPIController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_sharing/lib/Controller/ShareesAPIController.php b/apps/files_sharing/lib/Controller/ShareesAPIController.php index 451ee77278885..a082354fb39e8 100644 --- a/apps/files_sharing/lib/Controller/ShareesAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareesAPIController.php @@ -611,7 +611,7 @@ protected function getEmail($search) { if (isset($contact['isLocalSystemBook'])) { // check whether CLOUD ends with @, which is probably a leftover from an earlier version of OwnCloud - if (!(strlen($contact['CLOUD'][0) > 0 && substr_compare($contact['CLOUD'][0], "@", strlen($contact['CLOUD'][0])-strlen("@"), strlen("@")) === 0) { + if (!(strlen($contact['CLOUD'][0) > 0 && substr_compare($contact['CLOUD'][0], "@", strlen($contact['CLOUD'][0])-strlen("@"), strlen("@")) === 0)) { if ($exactEmailMatch) { $cloud = $this->cloudIdManager->resolveCloudId($contact['CLOUD'][0]); if (!$this->hasUserInResult($cloud->getUser())) { From 41b81d39159245be1f93aecfd415687ab8b531e9 Mon Sep 17 00:00:00 2001 From: c4539 Date: Thu, 10 Aug 2017 21:29:22 +0200 Subject: [PATCH 3/3] Adding missing ] --- apps/files_sharing/lib/Controller/ShareesAPIController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_sharing/lib/Controller/ShareesAPIController.php b/apps/files_sharing/lib/Controller/ShareesAPIController.php index a082354fb39e8..0a7e25b2cce5b 100644 --- a/apps/files_sharing/lib/Controller/ShareesAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareesAPIController.php @@ -611,7 +611,7 @@ protected function getEmail($search) { if (isset($contact['isLocalSystemBook'])) { // check whether CLOUD ends with @, which is probably a leftover from an earlier version of OwnCloud - if (!(strlen($contact['CLOUD'][0) > 0 && substr_compare($contact['CLOUD'][0], "@", strlen($contact['CLOUD'][0])-strlen("@"), strlen("@")) === 0)) { + if (!((strlen($contact['CLOUD'][0]) > 0) && (substr_compare($contact['CLOUD'][0], "@", strlen($contact['CLOUD'][0])-strlen("@"), strlen("@")) === 0))) { if ($exactEmailMatch) { $cloud = $this->cloudIdManager->resolveCloudId($contact['CLOUD'][0]); if (!$this->hasUserInResult($cloud->getUser())) {