From 2f99ae1120f9fff544befbd4169660b817bb7227 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 0019472c88..5961a3cca0 100644 --- a/apps/provisioning_api/lib/Controller/UsersController.php +++ b/apps/provisioning_api/lib/Controller/UsersController.php @@ -234,6 +234,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) { @@ -246,6 +247,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) { + } + } } }