foreach ($externalAccounts as $externalAccount) { $oAuth = new OAuthClient($externalAccount->service); $emails = $oAuth->getEmails($externalAccount->token); foreach ($emails as $_email) { if ($_email == $body->email) { $email_found = true; break; } } if ($email_found) { break; } } if ($email_found) { $access_token = $resourceServer->getAccessToken()->getId(); OAuthHelper::grantScopesToAccessToken($access_token, ['plugins', 'plugins:search', 'plugin:card', 'plugin:star', 'plugin:submit', 'plugin:download', 'tags', 'tag', 'authors', 'author', 'version', 'message', 'user:externalaccounts', 'user:apps']); $user->active = true; $user->email = $body->email; $mailer = new Mailer(); $mailer->sendMail('external_account_mail_as_main.html', [$user->email], 'Email address validated by ' . $externalAccount->service . ' used as main email on GLPi Plugins', ['user' => $user->toArray(), 'service' => $externalAccount->service]); } } if (isset($body->password) && User::isValidPassword($body->password)) { $user->setPassword($body->password); } if (isset($body->realname) && User::isValidRealname($body->realname)) { $user->realname = $body->realname; } if (isset($body->website) && User::isValidWebsite($body->website)) { $user->website = $body->website; }