diff options
author | Joas Schilling <coding@schilljs.com> | 2020-12-03 20:44:29 +0100 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2020-12-07 14:19:38 +0100 |
commit | d0750df20c3ca69ad250731b8c1e6db1c647c43d (patch) | |
tree | 867d5636847a5ed02811d435649c2395789a728b /apps/provisioning_api/lib | |
parent | f648635758e34bab0173e02eb9b75aafc5e6a9ff (diff) | |
download | nextcloud-server-d0750df20c3ca69ad250731b8c1e6db1c647c43d.tar.gz nextcloud-server-d0750df20c3ca69ad250731b8c1e6db1c647c43d.zip |
Unit tests for searching by phone number
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'apps/provisioning_api/lib')
-rw-r--r-- | apps/provisioning_api/lib/Controller/UsersController.php | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php index 18baa07a395..735d394796b 100644 --- a/apps/provisioning_api/lib/Controller/UsersController.php +++ b/apps/provisioning_api/lib/Controller/UsersController.php @@ -52,10 +52,10 @@ use OCA\Provisioning_API\FederatedShareProviderFactory; use OCA\Settings\Mailer\NewUserMailHelper; use OCP\Accounts\IAccountManager; use OCP\App\IAppManager; +use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSException; use OCP\AppFramework\OCS\OCSForbiddenException; -use OCP\Federation\ICloudIdManager; use OCP\IConfig; use OCP\IGroup; use OCP\IGroupManager; @@ -74,8 +74,6 @@ class UsersController extends AUserData { /** @var IAppManager */ private $appManager; - /** @var ICloudIdManager */ - protected $cloudIdManager; /** @var IURLGenerator */ protected $urlGenerator; /** @var ILogger */ @@ -101,7 +99,6 @@ class UsersController extends AUserData { IGroupManager $groupManager, IUserSession $userSession, AccountManager $accountManager, - ICloudIdManager $cloudIdManager, IURLGenerator $urlGenerator, ILogger $logger, IFactory $l10nFactory, @@ -120,7 +117,6 @@ class UsersController extends AUserData { $l10nFactory); $this->appManager = $appManager; - $this->cloudIdManager = $cloudIdManager; $this->urlGenerator = $urlGenerator; $this->logger = $logger; $this->l10nFactory = $l10nFactory; @@ -228,6 +224,11 @@ class UsersController extends AUserData { public function searchByPhoneNumbers(string $location, array $search): DataResponse { $phoneUtil = PhoneNumberUtil::getInstance(); + if ($phoneUtil->getCountryCodeForRegion($location) === 0) { + // Not a valid region code + return new DataResponse([], Http::STATUS_BAD_REQUEST); + } + $normalizedNumberToKey = []; foreach ($search as $key => $phoneNumbers) { foreach ($phoneNumbers as $phone) { @@ -254,11 +255,17 @@ class UsersController extends AUserData { return new DataResponse(); } - $cloudUrl = $this->urlGenerator->getAbsoluteURL('/'); + $cloudUrl = rtrim($this->urlGenerator->getAbsoluteURL('/'), '/'); + if (strpos($cloudUrl, 'http://') === 0) { + $cloudUrl = substr($cloudUrl, strlen('http://')); + } elseif (strpos($cloudUrl, 'https://') === 0) { + $cloudUrl = substr($cloudUrl, strlen('https://')); + } $matches = []; foreach ($userMatches as $phone => $userId) { - $matches[$normalizedNumberToKey[$phone]] = $this->cloudIdManager->getCloudId($userId, $cloudUrl)->getId(); + // Not using the ICloudIdManager as that would run a search for each contact to find the display name in the address book + $matches[$normalizedNumberToKey[$phone]] = $userId . '@' . $cloudUrl; } return new DataResponse($matches); |