From f38248dcd4366e4323e99be7b4ae84508cf4519d Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 31 Mar 2021 08:45:32 +0200 Subject: [PATCH] Also check the default phone region when the number has no country code Signed-off-by: Joas Schilling --- .../lib/Controller/UsersController.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php index f933cd4cd7..f65744d943 100644 --- a/apps/provisioning_api/lib/Controller/UsersController.php +++ b/apps/provisioning_api/lib/Controller/UsersController.php @@ -233,6 +233,7 @@ class UsersController extends AUserData { /** @var IUser $user */ $user = $this->userSession->getUser(); $knownTo = $user->getUID(); + $defaultPhoneRegion = $this->config->getSystemValueString('default_phone_region'); $normalizedNumberToKey = []; foreach ($search as $key => $phoneNumbers) { @@ -245,6 +246,20 @@ class UsersController extends AUserData { } } catch (NumberParseException $e) { } + + if ($defaultPhoneRegion !== '' && $defaultPhoneRegion !== $location && strpos($phone, '0') === 0) { + // If the number has a leading zero (no country code), + // we also check the default phone region of the instance, + // when it's different to the user's given region. + try { + $phoneNumber = $phoneUtil->parse($phone, $defaultPhoneRegion); + if ($phoneNumber instanceof PhoneNumber && $phoneUtil->isValidNumber($phoneNumber)) { + $normalizedNumber = $phoneUtil->format($phoneNumber, PhoneNumberFormat::E164); + $normalizedNumberToKey[$normalizedNumber] = (string) $key; + } + } catch (NumberParseException $e) { + } + } } }