aboutsummaryrefslogtreecommitdiffstats
path: root/apps/provisioning_api/lib
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2023-09-25 15:33:40 +0200
committerJoas Schilling <coding@schilljs.com>2023-09-25 15:54:21 +0200
commit0956b493b6394a6ea3c748fa5dd0910bc697ba8a (patch)
treebe06005539d5f7d38fb36352578fd841506ee304 /apps/provisioning_api/lib
parent5092278b0f4bf1905fe08d51ad329682b6e8f410 (diff)
downloadnextcloud-server-0956b493b6394a6ea3c748fa5dd0910bc697ba8a.tar.gz
nextcloud-server-0956b493b6394a6ea3c748fa5dd0910bc697ba8a.zip
fix(phonenumber): Use the newly introduced API to limit 3rdparty lib usage
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'apps/provisioning_api/lib')
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php33
1 files changed, 11 insertions, 22 deletions
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php
index 07f651c74fa..c3e9d502675 100644
--- a/apps/provisioning_api/lib/Controller/UsersController.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -45,9 +45,6 @@ declare(strict_types=1);
namespace OCA\Provisioning_API\Controller;
use InvalidArgumentException;
-use libphonenumber\NumberParseException;
-use libphonenumber\PhoneNumberFormat;
-use libphonenumber\PhoneNumberUtil;
use OC\Authentication\Token\RemoteWipe;
use OC\KnownUser\KnownUserService;
use OC\User\Backend;
@@ -66,6 +63,7 @@ use OCP\HintException;
use OCP\IConfig;
use OCP\IGroup;
use OCP\IGroupManager;
+use OCP\IPhoneNumberUtil;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUser;
@@ -113,7 +111,8 @@ class UsersController extends AUserData {
ISecureRandom $secureRandom,
RemoteWipe $remoteWipe,
KnownUserService $knownUserService,
- IEventDispatcher $eventDispatcher
+ IEventDispatcher $eventDispatcher,
+ private IPhoneNumberUtil $phoneNumberUtil,
) {
parent::__construct(
$appName,
@@ -243,9 +242,7 @@ class UsersController extends AUserData {
* 400: Invalid location
*/
public function searchByPhoneNumbers(string $location, array $search): DataResponse {
- $phoneUtil = PhoneNumberUtil::getInstance();
-
- if ($phoneUtil->getCountryCodeForRegion($location) === 0) {
+ if ($this->phoneNumberUtil->getCountryCodeForRegion($location) === null) {
// Not a valid region code
return new DataResponse([], Http::STATUS_BAD_REQUEST);
}
@@ -258,26 +255,18 @@ class UsersController extends AUserData {
$normalizedNumberToKey = [];
foreach ($search as $key => $phoneNumbers) {
foreach ($phoneNumbers as $phone) {
- try {
- $phoneNumber = $phoneUtil->parse($phone, $location);
- if ($phoneUtil->isValidNumber($phoneNumber)) {
- $normalizedNumber = $phoneUtil->format($phoneNumber, PhoneNumberFormat::E164);
- $normalizedNumberToKey[$normalizedNumber] = (string) $key;
- }
- } catch (NumberParseException $e) {
+ $normalizedNumber = $this->phoneNumberUtil->convertToStandardFormat($phone, $location);
+ if ($normalizedNumber !== null) {
+ $normalizedNumberToKey[$normalizedNumber] = (string) $key;
}
- if ($defaultPhoneRegion !== '' && $defaultPhoneRegion !== $location && strpos($phone, '0') === 0) {
+ if ($defaultPhoneRegion !== '' && $defaultPhoneRegion !== $location && str_starts_with($phone, '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 ($phoneUtil->isValidNumber($phoneNumber)) {
- $normalizedNumber = $phoneUtil->format($phoneNumber, PhoneNumberFormat::E164);
- $normalizedNumberToKey[$normalizedNumber] = (string) $key;
- }
- } catch (NumberParseException $e) {
+ $normalizedNumber = $this->phoneNumberUtil->convertToStandardFormat($phone, $defaultPhoneRegion);
+ if ($normalizedNumber !== null) {
+ $normalizedNumberToKey[$normalizedNumber] = (string) $key;
}
}
}