Newscoop\NewscoopBundle\Controller\BackendPublicationsController::removeAction PHP Метод

removeAction() публичный Метод

public removeAction ( Request $request, Publication $publication )
$request Symfony\Component\HttpFoundation\Request
$publication Newscoop\Entity\Publication
    public function removeAction(Request $request, Publication $publication)
    {
        $em = $this->container->get('em');
        $user = $this->container->get('user')->getCurrentUser();
        $translator = $this->container->get('translator');
        if (!$user->hasPermission('ManagePub')) {
            throw new AccessDeniedException($translator->trans("You do not have the right to delete publications.", array(), 'pub'));
        }
        $issuesRemaining = $em->getRepository('Newscoop\\Entity\\Issue')->getIssuesCountForPublication($publication->getId())->getSingleScalarResult();
        $sectionsRemaining = $em->getRepository('Newscoop\\Entity\\Section')->getSectionsCountForPublication($publication->getId())->getSingleScalarResult();
        $articlesRemaining = $em->getRepository('Newscoop\\Entity\\Article')->getArticlesCountForPublication($publication->getId())->getSingleScalarResult();
        $form = $this->createForm(new RemovePublicationType(), $publication);
        if ($request->getMethod() === 'POST' && $issuesRemaining == 0 && $sectionsRemaining == 0 && $articlesRemaining == 0) {
            $form->handleRequest($request);
            if ($form->isValid()) {
                $em->remove($publication);
                $em->flush();
                $cacheService = $this->container->get('newscoop.cache');
                $cacheService->clearNamespace('publication');
                $this->get('session')->getFlashBag()->add('success', $translator->trans('publications.publication_removed', array(), 'pub'));
                return new RedirectResponse($this->generateUrl('newscoop_newscoop_publications_index'));
            }
        }
        return $this->render('NewscoopNewscoopBundle:BackendPublications:remove.html.twig', array('publication' => $publication, 'issuesRemaining' => $issuesRemaining, 'sectionsRemaining' => $sectionsRemaining, 'articlesRemaining' => $articlesRemaining, 'form' => $form->createView()));
    }