$user->apps()->delete(); // Finally delete the user $user->delete(); $app->halt(200); }); /** * Validate the email address for a manually registered user * (i.e: click on the link that is sent by mail) */ $user_validate_mail = Tool::makeEndpoint(function ($_validationToken) use($app) { $validationToken = ValidationToken::where('token', '=', $_validationToken)->first(); if ($validationToken) { $user = $validationToken->user; $user->active = true; $user->save(); $accessToken = OAuthHelper::createAccessTokenFromUserId($user->id, ['plugins', 'plugins:search', 'plugin:card', 'plugin:star', 'plugin:submit', 'plugin:download', 'tags', 'tag', 'authors', 'author', 'version', 'message', 'user', 'user:apps']); $mailer = new Mailer(); $mailer->sendMail('confirm_account.html', [$user->email], 'Your email account is confirmed', ['user' => $user->toArray()]); $validationToken->delete(); Tool::endWithJson(["access_token" => $accessToken['token'], "refresh_token" => $accessToken['refresh_token'], "expires_in" => $accessToken['ttl']], 200); } else { throw new \API\Exception\InvalidValidationToken($_validationToken); } }); /** * Returns the profile */ $profile_view = Tool::makeEndpoint(function () use($app, $resourceServer) { OAuthHelper::needsScopes(['user']); $user = OAuthHelper::currentlyAuthed(); // Adding gravatar
if (isset($external_account_infos['location'])) { $user->location = $external_account_infos['location']; } if (isset($external_account_infos['website'])) { $user->website = $external_account_infos['website']; } $user->save(); $data['account_created'] = true; // Associating external user account $externalAccount = new UserExternalAccount(); $externalAccount->external_user_id = $external_account_infos['id']; $externalAccount->token = $token; $externalAccount->service = $service; $user->externalAccounts()->save($externalAccount); $data['external_account_linked'] = true; $accessToken = OAuthHelper::createAccessTokenFromUserId($user->id, ['user']); } $data['access_token'] = $accessToken['token']; $data['refresh_token'] = $accessToken['refresh_token']; $data['access_token_expires_in'] = $accessToken['ttl']; } if (isset($data['error'])) { if ($data['error'] == 'Service error') { $app->response->status(500); } else { $app->response->status(400); } } echo '<!DOCTYPE html><html><head></head><body><script type="text/javascript">' . 'var data = \'' . json_encode($data) . '\'; var i = 0 ; var interval = setInterval(function(){ if (i == 300) {clearInterval(interval);} i++; window.postMessage(data, "*");}, 750);' . '</script></body></html>'; }); /**