/** * @param Board $board * @param User $user * @return RedirectResponse */ public function removeMemberAction(Board $board, User $user) { $journal = $this->get('ojs.journal_service')->getSelectedJournal(); if (!$this->isGranted('EDIT', $journal, 'boards')) { throw new AccessDeniedException("You not authorized for edit this journal's board!"); } $em = $this->getDoctrine()->getManager(); $boardMember = $em->getRepository('OjsJournalBundle:BoardMember')->findOneBy(array('user' => $user, 'board' => $board)); $this->throw404IfNotFound($boardMember); $em->remove($boardMember); $em->flush(); return $this->redirectToRoute('ojs_journal_board_show', ['id' => $board->getId(), 'journalId' => $journal->getId()]); }
/** * Deletes a Board entity. * * @param Request $request * @param Board $board * @return RedirectResponse */ public function deleteAction(Request $request, Board $entity) { $journal = $this->get('ojs.journal_service')->getSelectedJournal(); $eventDispatcher = $this->get('event_dispatcher'); if (!$this->isGranted('DELETE', $journal, 'boards')) { throw new AccessDeniedException("You not authorized for delete this journal's boards!"); } $em = $this->getDoctrine()->getManager(); $csrf = $this->get('security.csrf.token_manager'); $token = $csrf->getToken('ojs_journal_board' . $entity->getId()); if ($token != $request->get('_token')) { throw new TokenNotFoundException("Token Not Found!"); } $event = new JournalItemEvent($entity); $eventDispatcher->dispatch(BoardEvents::PRE_DELETE, $event); $em->remove($entity); $em->flush(); $event = new JournalEvent($journal); $eventDispatcher->dispatch(BoardEvents::POST_DELETE, $event); if ($event->getResponse()) { return $event->getResponse(); } $this->successFlashBag('successful.remove'); return $this->redirectToRoute('ojs_journal_board_index', ['journalId' => $journal->getId()]); }
/** * Deletes a Board entity. * * @param Request $request * @param Board $board * @return RedirectResponse */ public function deleteAction(Request $request, Board $board) { $journal = $this->get('ojs.journal_service')->getSelectedJournal(); if (!$this->isGranted('DELETE', $journal, 'boards')) { throw new AccessDeniedException("You not authorized for delete this journal's boards!"); } /** @var $dispatcher EventDispatcherInterface */ $dispatcher = $this->get('event_dispatcher'); $em = $this->getDoctrine()->getManager(); $csrf = $this->get('security.csrf.token_manager'); $token = $csrf->getToken('ojs_journal_board' . $board->getId()); if ($token != $request->get('_token')) { throw new TokenNotFoundException("Token Not Found!"); } $em->remove($board); $em->flush(); $this->successFlashBag('successful.remove'); $event = new JournalEvent($request, $journal, $this->getUser(), 'delete'); $dispatcher->dispatch(JournalEvents::JOURNAL_BOARD_CHANGE, $event); return $this->redirectToRoute('ojs_journal_board_index', ['journalId' => $journal->getId()]); }