/** * Get details. * * @return array */ public function getNotificationDetails() { $receiver = $this->getReceiver(); $workspace = $this->badge->getWorkspace() ? $this->badge->getWorkspace()->getId() : null; $notificationDetails = array('workspace' => $workspace, 'badge' => array('id' => $this->badge->getId(), 'name' => $this->badge->getName(), 'slug' => $this->badge->getSlug()), 'receiver' => array('id' => $receiver->getId(), 'publicUrl' => $receiver->getPublicUrl(), 'lastName' => $receiver->getLastName(), 'firstName' => $receiver->getFirstName())); return $notificationDetails; }
/** * @Route("/unaward/{id}/{username}", name="icap_badge_workspace_tool_badges_unaward") * @ParamConverter( * "workspace", * class="ClarolineCoreBundle:Workspace\Workspace", * options={"id" = "workspaceId"} * ) * @ParamConverter("user", options={"mapping": {"username": "******"}}) * @Template */ public function unawardAction(Request $request, Workspace $workspace, Badge $badge, User $user) { if (null === $badge->getWorkspace()) { throw $this->createNotFoundException('No badge found.'); } $this->checkUserIsAllowed($workspace); /** @var \Symfony\Component\Translation\TranslatorInterface $translator */ $translator = $this->get('translator'); try { $doctrine = $this->getDoctrine(); /** @var \Doctrine\ORM\EntityManager $entityManager */ $entityManager = $doctrine->getManager(); $userBadge = $doctrine->getRepository('IcapBadgeBundle:UserBadge')->findOneByBadgeAndUser($badge, $user); $entityManager->remove($userBadge); $entityManager->flush(); $this->get('session')->getFlashBag()->add('success', $translator->trans('badge_unaward_success_message', array(), 'icap_badge')); } catch (\Exception $exception) { if (!$request->isXmlHttpRequest()) { $this->get('session')->getFlashBag()->add('error', $translator->trans('badge_unaward_error_message', array(), 'icap_badge')); } else { return new Response($exception->getMessage(), 500); } } if ($request->isXmlHttpRequest()) { return new JsonResponse(array('error' => false)); } return $this->redirect($this->generateUrl('icap_badge_workspace_tool_badges_edit', array('workspaceId' => $workspace->getId(), 'slug' => $badge->getSlug()))); }