setName('oauth:client:updateRedirects') ->setDescription('Update OAuht client for uri\'s.') ->setHelp('This command allows you to updates uris an OAuth client with many uri\'s') ->addOption( 'redirect_uri', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'OAuth Redirect URI. Example: http://127.0.0.1/ftth/login_check' ) ->addOption( 'client_id', null, InputOption::VALUE_OPTIONAL, 'OAuth Client random Id' ) ->addOption( 'client_secret', null, InputOption::VALUE_OPTIONAL, 'OAuth Client random Secret' ); } /** * @param InputInterface $input * @param OutputInterface $output */ protected function execute(InputInterface $input, OutputInterface $output) { $redirectUri = $input->getOption('redirect_uri'); $random = $input->getOption('client_id'); $secret = $input->getOption('client_secret'); $client = $this->updateClient($redirectUri, $random, $secret); $output->writeln('UPDATE OK'); } /** * @param array $redirectUri * @param string $random * @param string $secret * * @return OAuthClient */ protected function updateClient($redirectUri, $random = null, $secret = null) { /* @var $clientManager ClientManager */ $clientManager = $this->getContainer()->get('fos_oauth_server.client_manager.default'); $em = $this->getContainer()->get('doctrine')->getEntityManager(); $newUri = []; $clients = $em->getRepository('BaseOAuthServerBundle:OAuthClient')->findAll(); foreach ($clients as $client) { $client->setRedirectUris( $redirectUri ); $clientManager->updateClient($client); } return $client; } }