private function getUsername(Advert $entity) { if (!is_null($entity->getUser())) { $username = $entity->getUser()->getUsername(); } else { $username = $entity->getGuest()->getUsername(); } return $username; }
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)); }
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)); }