Example #1
0
 public function followDepartementAction(Request $request, Departement $departement)
 {
     if ($request->isXmlHttpRequest()) {
         $response = new JsonResponse();
         $em = $this->getDoctrine()->getEntityManager();
         $user = $this->getUser();
         if (!is_object($user) || !$user instanceof User) {
             throw new AccessDeniedException('This user does not have access to this section.');
         }
         $followedDepartement = $user->getFolloweddepartement();
         $toArray = array();
         foreach ($followedDepartement as $r) {
             $toArray[] = $r->getId();
         }
         if (in_array($departement->getId(), $toArray)) {
             $user->removeFolloweddepartement($departement);
             $response->setData(array('username' => $departement->getNom(), 'subject' => "Vous n'êtes plus abonné à "));
         } else {
             $user->addFolloweddepartement($departement);
             $response->setData(array('username' => $departement->getNom(), 'subject' => 'Vous êtes abonné à '));
             $this->get('event_dispatcher')->dispatch(SkuagEvents::ON_FOLLOW_DEPARTEMENT, new FollowDepartementEvent($departement, $user));
         }
         $em->flush();
         return $response;
     }
     return $this->errorMethodRequest();
 }