Example #1
0
 public function inviteAction(Team $team, Player $player, Player $me)
 {
     if (!$me->canEdit($team)) {
         throw new ForbiddenException("You are not allowed to invite a player to that team!");
     } elseif ($team->isMember($player->getId())) {
         throw new ForbiddenException("The specified player is already a member of that team.");
     } elseif (Invitation::hasOpenInvitation($player->getId(), $team->getId())) {
         throw new ForbiddenException("This player has already been invited to join the team.");
     }
     return $this->showConfirmationForm(function () use($team, $player, $me) {
         $invite = Invitation::sendInvite($player->getId(), $me->getId(), $team->getId());
         Service::getDispatcher()->dispatch(Events::TEAM_INVITE, new TeamInviteEvent($invite));
         return new RedirectResponse($team->getUrl());
     }, "Are you sure you want to invite {$player->getEscapedUsername()} to {$team->getEscapedName()}?", "Player {$player->getUsername()} has been invited to {$team->getName()}");
 }
Example #2
0
 /**
  * @param Group  $discussion
  * @param Player $me
  */
 private function showRenameForm($discussion, $me)
 {
     $creator = new GroupRenameFormCreator($discussion);
     $form = $creator->create()->handleRequest($this->getRequest());
     if ($form->isValid()) {
         $this->assertCanEdit($me, $discussion);
         $newName = $form->get('subject')->getData();
         $event = new GroupRenameEvent($discussion, $discussion->getSubject(), $newName, $me);
         $discussion->setSubject($newName);
         Service::getDispatcher()->dispatch(Events::GROUP_RENAME, $event);
         $this->getFlashBag()->add('success', "The conversation has been updated");
     }
     return $form;
 }
Example #3
0
 public function assignLeaderAction(Team $team, Player $me, Player $player)
 {
     $this->assertCanEdit($me, $team, "You are not allowed to change the leader of this team.");
     if (!$team->isMember($player->getId())) {
         throw new ForbiddenException("The specified player is not a member of {$team->getName()}");
     } elseif ($team->getLeader()->getId() == $player->getId()) {
         throw new ForbiddenException("{$player->getUsername()} is already the leader of {$team->getName()}");
     }
     return $this->showConfirmationForm(function () use($player, $team) {
         $event = new Event\TeamLeaderChangeEvent($team, $player, $team->getLeader());
         $team->setLeader($player->getId());
         Service::getDispatcher()->dispatch(Events::TEAM_LEADER_CHANGE, $event);
         return new RedirectResponse($team->getUrl());
     }, "Are you sure you want to transfer the leadership of the team to <strong>{$player->getEscapedUsername()}</strong>?", "{$player->getUsername()} is now leading {$team->getName()}", "Appoint leadership");
 }