예제 #1
0
 /**
  * @Security("has_role('ROLE_USER')")
  * @Route("/troops/{troop_id}/membership-requests/{id}", name="get_membership_request", methods={"GET"})
  * @param \AppBundle\Controller\MembershipRequest $membershipRequest
  */
 public function displayMembershipRequestAction(MembershipRequest $membershipRequest)
 {
     $troop = $membershipRequest->getTroop();
     if ($this->get('kilix_abac.security')->enforce('troop_membership', $this->getUser(), $troop, ['dynamic_attributes' => ['troop-id' => $troop->getId()]]) !== true) {
         throw new AccessDeniedHttpException('troops.access_denied');
     }
     return $this->render('troop/membership_request.html.twig', ['membership_request' => $membershipRequest, 'is_troop_leader' => $this->get('kilix_abac.security')->enforce('troop_leadership', $this->getUser(), $troop, ['dynamic_attributes' => ['troop-id' => $troop->getId()]]) === true]);
 }
예제 #2
0
 /**
  * @param \AppBundle\Entity\Troop\MembershipRequest $membershipRequest
  */
 public function acceptMembershipRequest(MembershipRequest $membershipRequest)
 {
     $troop = $membershipRequest->getTroop();
     $user = $membershipRequest->getUser();
     $association = (new Association())->setUser($user)->setTroop($troop);
     $troop->addAssociation($association);
     $user->addTroopAssociation($association);
     $this->em->remove($membershipRequest);
     $this->em->persist($association);
     $this->em->persist($user);
     $this->em->persist($troop);
     $this->em->flush();
     $this->mailer->sendTo($user->getEmail(), 'troops.membership_requests.approval_mail', ['%username%' => $user->getUsername(), '%troop_name%' => $troop->getName()]);
 }