private function renderRemovePersonDialogue(ConpherenceThread $conpherence)
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     $remove_person = $request->getStr('remove_person');
     $participants = $conpherence->getParticipants();
     if ($conpherence->getIsRoom()) {
         $message = pht('Are you sure you want to remove yourself from this room?');
     } else {
         $message = pht('Are you sure you want to remove yourself from this thread?');
         if (count($participants) == 1) {
             $message .= pht('The thread will be inaccessible forever and ever.');
         } else {
             $message .= pht('Someone else in the thread can add you back later.');
         }
     }
     $body = phutil_tag('p', array(), $message);
     require_celerity_resource('conpherence-update-css');
     return id(new AphrontDialogView())->setTitle(pht('Remove Participants'))->addHiddenInput('action', 'remove_person')->addHiddenInput('remove_person', $remove_person)->addHiddenInput('latest_transaction_id', $request->getInt('latest_transaction_id'))->addHiddenInput('__continue__', true)->appendChild($body);
 }
 private function renderRemovePersonDialogue(ConpherenceThread $conpherence)
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     $remove_person = $request->getStr('remove_person');
     $participants = $conpherence->getParticipants();
     $message = pht('Are you sure you want to leave this room?');
     $test_conpherence = clone $conpherence;
     $test_conpherence->attachParticipants(array());
     if (!PhabricatorPolicyFilter::hasCapability($user, $test_conpherence, PhabricatorPolicyCapability::CAN_VIEW)) {
         if (count($participants) == 1) {
             $message .= pht(' The room will be inaccessible forever and ever.');
         } else {
             $message .= pht(' Someone else in the room can add you back later.');
         }
     }
     $body = phutil_tag('p', array(), $message);
     require_celerity_resource('conpherence-update-css');
     return id(new AphrontDialogView())->setTitle(pht('Leave Room'))->addHiddenInput('action', 'remove_person')->addHiddenInput('remove_person', $remove_person)->addHiddenInput('latest_transaction_id', $request->getInt('latest_transaction_id'))->addHiddenInput('__continue__', true)->appendChild($body);
 }
 private function renderRemovePersonDialog(ConpherenceThread $conpherence)
 {
     $request = $this->getRequest();
     $viewer = $request->getUser();
     $remove_person = $request->getStr('remove_person');
     $participants = $conpherence->getParticipants();
     $removed_user = id(new PhabricatorPeopleQuery())->setViewer($viewer)->withPHIDs(array($remove_person))->executeOne();
     if (!$removed_user) {
         return new Aphront404Response();
     }
     $is_self = $viewer->getPHID() == $removed_user->getPHID();
     $is_last = count($participants) == 1;
     $test_conpherence = clone $conpherence;
     $test_conpherence->attachParticipants(array());
     $still_visible = PhabricatorPolicyFilter::hasCapability($removed_user, $test_conpherence, PhabricatorPolicyCapability::CAN_VIEW);
     $body = array();
     if ($is_self) {
         $title = pht('Leave Room');
         $body[] = pht('Are you sure you want to leave this room?');
     } else {
         $title = pht('Banish User');
         $body[] = pht('Banish %s from the realm?', phutil_tag('strong', array(), $removed_user->getUsername()));
     }
     if ($still_visible) {
         if ($is_self) {
             $body[] = pht('You will be able to rejoin the room later.');
         } else {
             $body[] = pht('This user will be able to rejoin the room later.');
         }
     } else {
         if ($is_self) {
             if ($is_last) {
                 $body[] = pht('You are the last member, so you will never be able to rejoin ' . 'the room.');
             } else {
                 $body[] = pht('You will not be able to rejoin the room on your own, but ' . 'someone else can invite you later.');
             }
         } else {
             $body[] = pht('This user will not be able to rejoin the room unless invited ' . 'again.');
         }
     }
     $dialog = id(new AphrontDialogView())->setTitle($title)->addHiddenInput('action', 'remove_person')->addHiddenInput('remove_person', $remove_person)->addHiddenInput('latest_transaction_id', $request->getInt('latest_transaction_id'))->addHiddenInput('__continue__', true);
     foreach ($body as $paragraph) {
         $dialog->appendParagraph($paragraph);
     }
     return $dialog;
 }