/**
  * @param ApiClientInterface $client
  * @param string $refreshToken
  *
  * @return TokenInterface
  */
 public function findOneByClientAndRefreshToken(ApiClientInterface $client, $refreshToken)
 {
     $qb = $this->createQueryBuilder();
     $qb->field('client.id')->equals($client->getId());
     $qb->field('refreshCode')->equals($refreshToken);
     $qb->limit(1);
     return $qb->getQuery()->getSingleResult();
 }
 /**
  * @param ApiClientInterface $client
  * @param UserInterface      $user
  */
 protected function revokeNonUsedAccessToken(ApiClientInterface $client, UserInterface $user = null)
 {
     $searchParams = array('client.id' => $client->getId(), 'blocked' => false);
     $searchParams['user.id'] = null;
     if ($user instanceof UserInterface && method_exists($user, 'getId')) {
         $searchParams['user.id'] = $user->getId();
     }
     $accessTokens = $this->accessTokenRepository->findBy($searchParams);
     /** @var TokenInterface $accessToken */
     foreach ($accessTokens as $accessToken) {
         $accessToken->block();
         $this->objectManager->persist($accessToken);
     }
     $this->objectManager->flush();
 }
 /**
  * @param ApiClientInterface $apiClient
  *
  * @return FacadeInterface
  *
  * @throws TransformerParameterTypeException
  */
 public function transform($apiClient)
 {
     if (!$apiClient instanceof ApiClientInterface) {
         throw new TransformerParameterTypeException();
     }
     $facade = $this->newFacade();
     $facade->id = $apiClient->getId();
     $facade->name = $apiClient->getName();
     $facade->trusted = $apiClient->isTrusted();
     $facade->key = $apiClient->getKey();
     $facade->secret = $apiClient->getSecret();
     $facade->roles = implode(',', $apiClient->getRoles());
     if ($this->authorizationChecker->isGranted(AdministrationPanelStrategy::ROLE_ACCESS_DELETE_API_CLIENT)) {
         $facade->addLink('_self_delete', $this->generateRoute('open_orchestra_api_api_client_delete', array('apiClientId' => $apiClient->getId())));
     }
     if ($this->authorizationChecker->isGranted(AdministrationPanelStrategy::ROLE_ACCESS_UPDATE_API_CLIENT)) {
         $facade->addLink('_self_form', $this->generateRoute('open_orchestra_backoffice_api_client_form', array('apiClientId' => $apiClient->getId())));
     }
     return $facade;
 }