/** * @param $clientId * @param $username * @param $password * * @return array|boolean */ protected function checkUserCredentials($clientId, $username, $password) { try { if (null === ($client = $this->app['repo.api-applications']->findByClientId($clientId))) { return false; } $this->setClient($client); $usrId = $this->app['auth.native']->getUsrId($username, $password, Request::createFromGlobals()); if (!$usrId) { return false; } if (null === ($user = $this->app['repo.users']->find($usrId))) { return false; } $account = $this->updateAccount($user); return ['redirect_uri' => $this->client->getRedirectUri(), 'client_id' => $this->client->getClient(), 'account_id' => $account->getId()]; } catch (AccountLockedException $e) { return false; } catch (RequireCaptchaException $e) { return false; } catch (\Exception $e) { return false; } }
/** * Authorize application to use a grant password type. * * @param Request $request * @param ApiApplication $application * * @return JsonResponse */ public function authorizeGrantPassword(Request $request, ApiApplication $application) { $this->assertJsonRequestFormat($request); $application->setGrantPassword((bool) $request->request->get('grant')); $this->getApiApplicationManipulator()->update($application); return $this->app->json(['success' => true]); }
/** * Authorize application to use a grant password type. * * @param Application $app * @param Request $request * @param ApiApplication $application * * @return JsonResponse */ public function authorizeGrantPassword(Application $app, Request $request, ApiApplication $application) { if (!$request->isXmlHttpRequest() || !array_key_exists($request->getMimeType('json'), array_flip($request->getAcceptableContentTypes()))) { $app->abort(400, 'Bad request format, only JSON is allowed'); } $application->setGrantPassword((bool) $request->request->get('grant')); $app['manipulator.api-application']->update($application); return $app->json(['success' => true]); }
/** * @param ApiApplication $application * * @return ApiAccount */ public function setApplication(ApiApplication $application) { $application->addAccount($this); $this->application = $application; return $this; }
private function getUrl(ApiApplication $application, WebhookEventDelivery $delivery) { return sprintf('%s#%s', $application->getWebhookUrl(), $delivery->getId()); }
private function doSetWebhookUrl(ApiApplication $application, $url) { if (false === filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED | FILTER_FLAG_HOST_REQUIRED)) { throw new InvalidArgumentException(sprintf('Webhook Url %s is not legal.', $url)); } $application->setWebhookUrl($url); }