private function getUsername(Advert $entity)
 {
     if (!is_null($entity->getUser())) {
         $username = $entity->getUser()->getUsername();
     } else {
         $username = $entity->getGuest()->getUsername();
     }
     return $username;
 }
예제 #2
0
 public function editAdvertAction(Advert $advert)
 {
     if ($advert->getUser() != $this->getUser()) {
         throw new AccessDeniedException("Vous n'avez rien à faire ici, ce n'est pas votre annonce - Bon message à revoir, je sais");
     }
     // Si l'annonce est déja vendu elle devient non modifiable.
     if ($advert->getSold()) {
         return $this->forward('SnoozitPlatformBundle:DashBoard:editAdvertAlreadySold', array('advert' => $advert));
     }
     $advertHandler = $this->get('sz_advert_handler');
     // Génération du breadcrumb
     $breadcrumb = array(array('Dashboard', $this->generateUrl('snoozit_dashboard_homepage')), array('Editer une annonce', $this->generateUrl('snoozit_dashboard_edit_advert', array('advert' => $advert->getId()))), array($advert->getTitle(), '#', true));
     if ($advertHandler->process()) {
         return $this->redirect($this->generateUrl('snoozit_show_advert', array('slug' => $advert->getSlug(), 'id' => $advert->getId())));
     }
     return $this->render('SnoozitPlatformBundle:DashBoard/EditAdvert:editAdvert.html.twig', array('form' => $advertHandler->createView(), 'breadcrumb' => $breadcrumb, 'advert' => $advert));
 }
예제 #3
0
 public function securityAccessAction(Advert $advert, Request $request)
 {
     $session = $this->get('session');
     // On vérifie si l'annonce est modifiable par cette interface qui est réservé au Guest
     if ($advert->getUser()) {
         return $this->redirect($this->generateUrl('snoozit_edit_advert_error_user', array('advert' => $advert->getId())));
     }
     // On créer la session si elle existe pas
     if (!$session->has('editAdvert')) {
         $session->set('editAdvert', array());
     }
     $editAdvertArray = $session->get('editAdvert');
     // Si la clé existe bien dans le tableau et que la clé correspond bien au hash de l'annonce on redirige
     // Sinon il y a un soucis quelque part et on supprime cette clé et donc on continue normalement avec le formulaire
     if (array_key_exists($advert->getId(), $editAdvertArray) and $editAdvertArray[$advert->getId()] == $advert->getHash()) {
         return $this->redirect($this->generateUrl('snoozit_edit_advert', array('advert' => $advert->getId())));
     } else {
         // Clé supprimée
         $session->remove('editAdvert/' . $advert->getId() . '');
     }
     // Si la clé n'existe pas on contine pour le formulaire
     // Création du breadCrumb
     $breadcrumb = array(array('Editer mon annonce', $this->generateUrl('snoozit_edit_advert', array('advert' => $advert->getId(), 'slug', $advert->getSlug()))), array($advert->getTitle(), '#', true));
     // Initialisation
     $data = array();
     $error = null;
     $form = $this->createFormBuilder($data)->add('hashkey', 'text', array('attr' => array('placeholder' => 'dosq1ds0çds769dsdjqd77712Pqhsidkhqsdkhqsidqs87sgdqsjhd', 'class' => 'form-control input-sm')))->getForm();
     // Vérification du formulaire
     if ($request->isMethod('POST')) {
         $form->handleRequest($request);
         $data = $form->getData();
         if ($data['hashkey'] === $advert->getHash()) {
             // On enregistre la clé dans la session
             $editAdvertArray[$advert->getId()] = $data['hashkey'];
             $session->set('editAdvert', $editAdvertArray);
             return $this->redirect($this->generateUrl('snoozit_edit_advert', array('advert' => $advert->getId())));
         } else {
             $error = 'Cette combinaison est invalide';
         }
         return $this->render('SnoozitPlatformBundle:Advert/Edit/SecurityAccess:securityAccess.html.twig', array('advert' => $advert, 'form' => $form->createView(), 'error' => $error, 'breadcrumb' => $breadcrumb));
     }
     return $this->render('SnoozitPlatformBundle:Advert/Edit/SecurityAccess:securityAccess.html.twig', array('advert' => $advert, 'form' => $form->createView(), 'error' => $error, 'breadcrumb' => $breadcrumb));
 }