/** * @Route("/app/manage/{clientId}/remove", name="devs_panel_remove_app") * @Template() */ public function removeAppAction(Request $request, OauthClient $client) { if (!$this->getUserLayer()->isUser()) { return $this->createAccessDeniedResponse(); } if ($client->getUser()->getId() != $this->getUser()->getId()) { throw new AccessDeniedHttpException(); } /** @var EntityManager $em */ $em = $this->getDoctrine()->getManager(); $form = $this->createFormBuilder()->add('client_id', 'text', ['required' => true, 'label' => 'Par sécurité, vous devez entrer le Client ID de cette application pour pouvoir la supprimer :', 'constraints' => new EqualTo(['value' => (string) $client->getClientId(), 'message' => 'Ce Client ID n\'est pas correct'])])->getForm(); if ($request->getMethod() == 'POST' && $form->submit($request)->isValid()) { $em->remove($client); $em->flush(); $this->get('session')->getFlashBag()->set('message', array('type' => 'success', 'message' => 'L\' application ' . $client->getName() . ' a bien été supprimée')); return $this->redirect($this->generateUrl('devs_panel_index')); } /** @var OauthClient[] $clients */ $clients = $em->getRepository('EtuCoreApiBundle:OauthClient')->findBy(['user' => $this->getUser()]); return ['client' => $client, 'clients' => $clients, 'form' => $form->createView()]; }