diff options
author | Joas Schilling <coding@schilljs.com> | 2020-12-02 16:03:08 +0100 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2020-12-07 14:19:38 +0100 |
commit | 9e04e6f99ad7a8d78b0bf09a414ed0f1aac3e5db (patch) | |
tree | e79332d8dcff97d096dc3513426964294bae89f0 /apps/settings/lib/Controller/UsersController.php | |
parent | fe9c46e595cba2d8e52db13cf15848a1f9d6f141 (diff) | |
download | nextcloud-server-9e04e6f99ad7a8d78b0bf09a414ed0f1aac3e5db.tar.gz nextcloud-server-9e04e6f99ad7a8d78b0bf09a414ed0f1aac3e5db.zip |
Also translate the phone number when coming in via the accounts manager API directly
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'apps/settings/lib/Controller/UsersController.php')
-rw-r--r-- | apps/settings/lib/Controller/UsersController.php | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/apps/settings/lib/Controller/UsersController.php b/apps/settings/lib/Controller/UsersController.php index 4267b8be4c4..5b3c1574f96 100644 --- a/apps/settings/lib/Controller/UsersController.php +++ b/apps/settings/lib/Controller/UsersController.php @@ -35,10 +35,6 @@ declare(strict_types=1); namespace OCA\Settings\Controller; -use libphonenumber\NumberParseException; -use libphonenumber\PhoneNumber; -use libphonenumber\PhoneNumberFormat; -use libphonenumber\PhoneNumberUtil; use OC\Accounts\AccountManager; use OC\AppFramework\Http; use OC\Encryption\Exceptions\ModuleDoesNotExistsException; @@ -469,24 +465,14 @@ class UsersController extends Controller { $user->setEMailAddress($data[IAccountManager::PROPERTY_EMAIL]['value']); } - if (isset($data[AccountManager::PROPERTY_PHONE])) { - $phoneUtil = PhoneNumberUtil::getInstance(); - try { - $phoneValue = $data[AccountManager::PROPERTY_PHONE]['value']; - $phoneNumber = $phoneUtil->parse($phoneValue, 'DE'); // FIXME need a reasonable default - if ($phoneNumber instanceof PhoneNumber && $phoneUtil->isValidNumber($phoneNumber)) { - $data[AccountManager::PROPERTY_PHONE]['value'] = $phoneUtil->format($phoneNumber, PhoneNumberFormat::E164); - } else { - throw new \InvalidArgumentException($this->l10n->t('Unable to set invalid phone number')); - } - } catch (NumberParseException $e) { + try { + return $this->accountManager->updateUser($user, $data); + } catch (\InvalidArgumentException $e) { + if ($e->getMessage() === IAccountManager::PROPERTY_PHONE) { throw new \InvalidArgumentException($this->l10n->t('Unable to set invalid phone number')); } + throw new \InvalidArgumentException($this->l10n->t('Some account data was invalid')); } - - $this->accountManager->updateUser($user, $data); - - return $data; } /** @@ -521,14 +507,12 @@ class UsersController extends Controller { $msg = $this->l10n->t('In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):'); $code = $codeMd5; $type = IAccountManager::PROPERTY_TWITTER; - $data = $accountData[IAccountManager::PROPERTY_TWITTER]['value']; $accountData[IAccountManager::PROPERTY_TWITTER]['signature'] = $signature; break; case 'verify-website': $accountData[IAccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::VERIFICATION_IN_PROGRESS; $msg = $this->l10n->t('In order to verify your Website, store the following content in your web-root at \'.well-known/CloudIdVerificationCode.txt\' (please make sure that the complete text is in one line):'); $type = IAccountManager::PROPERTY_WEBSITE; - $data = $accountData[IAccountManager::PROPERTY_WEBSITE]['value']; $accountData[IAccountManager::PROPERTY_WEBSITE]['signature'] = $signature; break; default: @@ -536,7 +520,8 @@ class UsersController extends Controller { } if ($onlyVerificationCode === false) { - $this->accountManager->updateUser($user, $accountData); + $accountData = $this->accountManager->updateUser($user, $accountData); + $data = $accountData[$type]['value']; $this->jobList->add(VerifyUserData::class, [ |