/** * Called on onConfigure Listener method * * @param WidgetInstance $widgetInstance * @return array AJAX response * * @EXT\ParamConverter("authenticatedUser", options={"authenticatedUser" = true}) */ public function userStatWidgetConfigureFormAction(WidgetInstance $widgetInstance, Request $request) { if (!$this->get('security.authorization_checker')->isGranted('edit', $widgetInstance)) { throw new AccessDeniedException(); } $exoverrideService = $this->container->get('cpasimusante.exoverride_services'); $userCanAccessWs = $exoverrideService->userCanAccessWs(); //block the access to configure for users with no right if ($userCanAccessWs == array()) { return $this->render('CPASimUSanteExoverrideBundle:Widget:statWidgetConfigure.html.twig', array('userCanAccessWs' => $userCanAccessWs)); } else { $em = $this->get('doctrine.orm.entity_manager'); $widgetExoverrideRadar = $em->getRepository('CPASimUSanteExoverrideBundle:ExoverrideStatConfig')->findOneByWidgetInstance($widgetInstance); if (null === $widgetExoverrideRadar) { $widgetExoverrideRadar = new ExoverrideStatConfig(); $widgetExoverrideRadar->setWidgetInstance($widgetInstance); } $userlist = $widgetExoverrideRadar->getUserList(); $resourcelist = $widgetExoverrideRadar->getResourcelist(); $form = $this->formFactory->create(new ExoverrideStatConfigType(), $widgetExoverrideRadar); $form->handleRequest($request); if ($form->isValid()) { $widgetExoverrideRadar = $form->getData(); //Need the exercise list corresponding to resource list to persist //in order to avoid having a request each time $services = $this->container->get('cpasimusante.exoverride_services'); $exercices = $services->getExoList($widgetExoverrideRadar->getResourcelist()); $list = array(); foreach ($exercices as $exos) { $list[] = $exos->getId(); } $exolist = implode(',', $list); $widgetExoverrideRadar->setExolist($exolist); $em->persist($widgetExoverrideRadar); $em->flush(); return new Response('', Response::HTTP_NO_CONTENT); } return $this->render('CPASimUSanteExoverrideBundle:Widget:statWidgetConfigure.html.twig', array('form' => $form->createView(), 'widgetInstance' => $widgetInstance, 'userlist' => $userlist, 'resourcelist' => $resourcelist, 'userCanAccessWs' => $userCanAccessWs)); } }