/** * @Route("/{id}/edit", name="lc_admin_app_edit") * @Template() */ public function editAction(Request $request, $id) { $em = $this->getDoctrine()->getManager(); $client = $em->getRepository('LoginCidadaoOAuthBundle:Client')->find($id); if (!$client) { return $this->redirect($this->generateUrl('lc_admin_app_new')); } $form = $this->createForm('LoginCidadao\\CoreBundle\\Form\\Type\\ClientFormType', $client); $form->handleRequest($request); if ($form->isValid()) { $metadata = $form->get('metadata')->getData(); $client->setAllowedGrantTypes(Client::getAllGrants()); $client->setMetadata($metadata); $metadata->setClient($client); $clientManager = $this->container->get('fos_oauth_server.client_manager'); $clientManager->updateClient($client); $translator = $this->get('translator'); $this->get('session')->getFlashBag()->add('success', $translator->trans('Updated successfully!')); return $this->redirectToRoute('lc_admin_app_edit', compact('id')); } return $this->render('LoginCidadaoCoreBundle:Admin\\Client:new.html.twig', array('form' => $form->createView(), 'client' => $client)); }
/** * @Route("/{id}/edit", name="lc_dev_client_edit") * @Template() */ public function editAction(Request $request, $id) { $em = $this->getDoctrine()->getManager(); $client = $em->getRepository('LoginCidadaoOAuthBundle:Client')->createQueryBuilder('c')->where(':person MEMBER OF c.owners')->andWhere('c.id = :id')->setParameters(array('id' => $id, 'person' => $this->getUser()))->getQuery()->getOneOrNullResult(); if (!$client) { return $this->redirect($this->generateUrl('lc_dev_client_new')); } $form = $this->createForm('LoginCidadao\\CoreBundle\\Form\\Type\\ClientFormType', $client); $form->handleRequest($request); $messages = ''; if ($form->isValid()) { $metadata = $form->get('metadata')->getData(); $client->setAllowedGrantTypes(Client::getAllGrants()); $client->setMetadata($metadata); $metadata->setClient($client); $clientManager = $this->container->get('fos_oauth_server.client_manager'); $clientManager->updateClient($client); $translator = $this->get('translator'); $this->get('session')->getFlashBag()->add('success', $translator->trans('Updated successfully!')); return $this->redirectToRoute('lc_dev_client_edit', compact('id')); } return $this->render('LoginCidadaoCoreBundle:Dev\\Client:new.html.twig', array('form' => $form->createView(), 'client' => $client, 'messages' => $messages)); }
private function checkRegistrationAccessToken(Request $request, Client $client) { $raw = $request->get('access_token', $request->headers->get('authorization')); $token = str_replace('Bearer ', '', $raw); $metadata = $client->getMetadata(); if (!$token || $metadata->getRegistrationAccessToken() !== $token) { throw $this->createAccessDeniedException(); } }
/** * @param Client $client * @return array */ public function getClientScope(Client $client) { $authorizations = $this->getAuthorizations(); foreach ($authorizations as $auth) { $c = $auth->getClient(); if ($c->getId() == $client->getId()) { return $auth->getScope(); } } return null; }
/** * @return Client */ public function toClient() { $name = $this->getClientName(); $hasName = $name !== null && strlen($name) > 0; $grantTypes = $this->getGrantTypes(); $clientUri = $this->getClientUri(); $tosUri = $this->getTosUri(); $clientName = $this->getClientName(); $redirectUris = $this->getRedirectUris(); $client = new Client(); if ($grantTypes) { $client->setAllowedGrantTypes($grantTypes); } if ($clientUri) { $client->setLandingPageUrl($clientUri)->setSiteUrl($clientUri); } if ($tosUri) { $client->setTermsOfUseUrl($tosUri); } if ($clientName) { $client->setName($clientName); } if ($redirectUris) { $client->setRedirectUris($redirectUris); } $client->setVisible(false)->setPublished(false); return $client; }