/** * @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]); }
/** * @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()]); }