summaryrefslogtreecommitdiffstats
path: root/settings/BackgroundJobs
diff options
context:
space:
mode:
Diffstat (limited to 'settings/BackgroundJobs')
-rw-r--r--settings/BackgroundJobs/VerifyUserData.php26
1 files changed, 13 insertions, 13 deletions
diff --git a/settings/BackgroundJobs/VerifyUserData.php b/settings/BackgroundJobs/VerifyUserData.php
index f19f622c97a..111939707d5 100644
--- a/settings/BackgroundJobs/VerifyUserData.php
+++ b/settings/BackgroundJobs/VerifyUserData.php
@@ -27,6 +27,7 @@ use OC\Accounts\AccountManager;
use OC\BackgroundJob\Job;
use OC\BackgroundJob\JobList;
use OCP\AppFramework\Http;
+use OCP\BackgroundJob\IJobList;
use OCP\Http\Client\IClientService;
use OCP\IConfig;
use OCP\ILogger;
@@ -135,7 +136,7 @@ class VerifyUserData extends Job {
$result = false;
- $url = rtrim($argument['data'], '/') . '/' . 'CloudIdVerificationCode.txt';
+ $url = rtrim($argument['data'], '/') . '/well-known/' . 'CloudIdVerificationCode.txt';
$client = $this->httpClientService->newClient();
try {
@@ -147,6 +148,8 @@ class VerifyUserData extends Job {
if ($response->getStatusCode() === Http::STATUS_OK) {
$result = true;
$publishedCode = $response->getBody();
+ // remove new lines and spaces
+ $publishedCodeSanitized = $string = trim(preg_replace('/\s\s+/', ' ', $publishedCode));
$user = $this->userManager->get($argument['uid']);
// we don't check a valid user -> give up
if ($user === null) {
@@ -155,11 +158,10 @@ class VerifyUserData extends Job {
}
$userData = $this->accountManager->getUser($user);
- if ($publishedCode === $argument['verificationCode']) {
-
- $userData[AccountManager::PROPERTY_WEBSITE]['verified'] === AccountManager::VERIFIED;
+ if ($publishedCodeSanitized === $argument['verificationCode']) {
+ $userData[AccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::VERIFIED;
} else {
- $userData[AccountManager::PROPERTY_WEBSITE]['verified'] === AccountManager::NOT_VERIFIED;
+ $userData[AccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::NOT_VERIFIED;
}
$this->accountManager->updateUser($user, $userData);
@@ -202,11 +204,11 @@ class VerifyUserData extends Job {
}
// lookup server hasn't verified the email address so far, try again later
- if ($lookupServerData[$dataType]['verified'] === AccountManager::VERIFICATION_IN_PROGRESS) {
+ if ($lookupServerData[$dataType]['verified'] === AccountManager::NOT_VERIFIED) {
return false;
}
- $localUserData[$dataType]['verified'] === $lookupServerData[$dataType]['verified'];
+ $localUserData[$dataType]['verified'] = AccountManager::VERIFIED;
$this->accountManager->updateUser($user, $localUserData);
return true;
@@ -218,9 +220,9 @@ class VerifyUserData extends Job {
*/
protected function queryLookupServer($cloudId) {
try {
- $client = $this->clientService->newClient();
+ $client = $this->httpClientService->newClient();
$response = $client->get(
- $this->lookupServerUrl . '/users?search=' . urlencode($cloudId),
+ $this->lookupServerUrl . '/users?search=' . urlencode($cloudId) . '&exactCloudId=1',
[
'timeout' => 10,
'connect_timeout' => 3,
@@ -229,10 +231,8 @@ class VerifyUserData extends Job {
$body = json_decode($response->getBody(), true);
- foreach ($body as $lookup) {
- if ($lookup['federationId'] === $cloudId) {
- return $lookup;
- }
+ if ($body['federationId'] === $cloudId) {
+ return $body;
}
} catch (\Exception $e) {