/**
  * 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));
     }
 }