/** * @param Request $request * @param JournalPage $entity * @return Response */ public function deleteAction(Request $request, JournalPage $entity) { $journal = $this->get('ojs.journal_service')->getSelectedJournal(); $dispatcher = $this->get('event_dispatcher'); if (!$this->isGranted('DELETE', $journal, 'pages')) { throw new AccessDeniedException("You are not authorized for this page!"); } $em = $this->getDoctrine()->getManager(); $csrf = $this->get('security.csrf.token_manager'); $token = $csrf->getToken('ojs_journal_page' . $entity->getId()); if ($token != $request->get('_token')) { throw new TokenNotFoundException("Token not found!"); } $event = new JournalItemEvent($entity); $dispatcher->dispatch(JournalPageEvents::PRE_DELETE, $event); $this->get('ojs_core.delete.service')->check($entity); $em->remove($entity); $em->flush(); $event = new JournalEvent($journal); $dispatcher->dispatch(JournalPageEvents::POST_DELETE, $event); if ($event->getResponse()) { return $event->getResponse(); } $this->successFlashBag('successful.remove'); return $this->redirectToRoute('ojs_journal_page_index', ['journalId' => $journal->getId()]); }