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; }