/**
  * @Route("/{id}", name="icap_badge_user_badge_edit", defaults={"id" = null, "_format" = "json"})
  * @Method({"PATCH"})
  * @ParamConverter("user", options={"authenticatedUser" = true})
  */
 public function editAction(Request $request, User $user, UserBadge $userBadge)
 {
     if ($userBadge->getUser() !== $user) {
         throw new AccessDeniedHttpException();
     }
     return $this->processForm($request, $userBadge, 'PATCH');
 }
Example #2
0
 /**
  * @param User[]|ArrayCollection $users
  *
  * @return $this
  */
 public function setUsers($users)
 {
     $this->userBadges->clear();
     foreach ($users as $user) {
         $userBagde = new UserBadge();
         $userBagde->setBadge($this)->setUser($user);
         $this->addUserBadge($userBagde);
     }
     return $this;
 }
Example #3
0
 /**
  * @param Badge     $badge
  * @param User      $user
  * @param string    $comment
  * @param User|null $issuer
  *
  * @throws \Exception
  *
  * @return bool
  */
 public function addBadgeToUser(Badge $badge, User $user, $comment = null, $issuer = null, $delayFlushAndEvent = false)
 {
     $badgeAwarded = false;
     /** @var \Icap\BadgeBundle\Repository\UserBadgeRepository $userBadgeRepository */
     $userBadgeRepository = $this->entityManager->getRepository('IcapBadgeBundle:UserBadge');
     $userBadge = $userBadgeRepository->findOneByBadgeAndUser($badge, $user);
     if (null === $userBadge) {
         try {
             $userBadge = new UserBadge();
             $userBadge->setBadge($badge)->setUser($user)->setComment($comment)->setIssuer($issuer);
             if ($badge->isExpiring()) {
                 $userBadge->setExpiredAt($this->generateExpireDate($badge));
             }
             $badge->addUserBadge($userBadge);
             $badgeAwarded = true;
             $this->entityManager->persist($badge);
             if (!$delayFlushAndEvent) {
                 $this->entityManager->flush();
                 $this->dispatchBadgeAwardingEvent($badge, $user, $issuer);
             }
         } catch (\Exception $exception) {
             throw $exception;
         }
     }
     return $badgeAwarded;
 }