/** * @Route("/{id}", name="icap_badge_badge_collection_delete", defaults={"_format" = "json"}) * @Method({"DELETE"}) * @ParamConverter("user", options={"authenticatedUser" = true}) */ public function deleteAction(Request $request, User $user, BadgeCollection $collection) { if ($collection->getUser() !== $user) { throw new AccessDeniedHttpException(); } $entityManager = $this->getDoctrine()->getManager(); $entityManager->remove($collection); $entityManager->flush(); $view = View::create(); $view->setStatusCode(204); return $this->get('fos_rest.view_handler')->handle($view); }
/** * @Route("/{slug}/{locale}", name="icap_badge_badge_collection_share_view", defaults={"locale"= "fr"}) * @Template */ public function shareViewAction(Request $request, BadgeCollection $collection, $locale) { $request->setLocale($locale); if (!$collection->isIsShared()) { throw $this->createNotFoundException('Collection not shared.'); } if (!$this->container->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) { $showBanner = false; } else { $showBanner = $this->getUser() === $collection->getUser(); } return array('collection' => $collection, 'user' => $collection->getUser(), 'showBanner' => $showBanner); }