Path: blob/master/src/applications/conduit/settings/PhabricatorConduitTokensSettingsPanel.php
12256 views
<?php12final class PhabricatorConduitTokensSettingsPanel3extends PhabricatorSettingsPanel {45public function isManagementPanel() {6if ($this->getUser()->getIsMailingList()) {7return false;8}910return true;11}1213public function getPanelKey() {14return 'apitokens';15}1617public function getPanelName() {18return pht('Conduit API Tokens');19}2021public function getPanelMenuIcon() {22return id(new PhabricatorConduitApplication())->getIcon();23}2425public function getPanelGroupKey() {26return PhabricatorSettingsLogsPanelGroup::PANELGROUPKEY;27}2829public function isEnabled() {30return true;31}3233public function processRequest(AphrontRequest $request) {34$viewer = $this->getViewer();35$user = $this->getUser();3637$tokens = id(new PhabricatorConduitTokenQuery())38->setViewer($viewer)39->withObjectPHIDs(array($user->getPHID()))40->withExpired(false)41->requireCapabilities(42array(43PhabricatorPolicyCapability::CAN_VIEW,44PhabricatorPolicyCapability::CAN_EDIT,45))46->execute();4748$rows = array();49foreach ($tokens as $token) {50$rows[] = array(51javelin_tag(52'a',53array(54'href' => '/conduit/token/edit/'.$token->getID().'/',55'sigil' => 'workflow',56),57$token->getPublicTokenName()),58PhabricatorConduitToken::getTokenTypeName($token->getTokenType()),59phabricator_datetime($token->getDateCreated(), $viewer),60($token->getExpires()61? phabricator_datetime($token->getExpires(), $viewer)62: pht('Never')),63javelin_tag(64'a',65array(66'class' => 'button small button-grey',67'href' => '/conduit/token/terminate/'.$token->getID().'/',68'sigil' => 'workflow',69),70pht('Terminate')),71);72}7374$table = new AphrontTableView($rows);75$table->setNoDataString(pht("You don't have any active API tokens."));76$table->setHeaders(77array(78pht('Token'),79pht('Type'),80pht('Created'),81pht('Expires'),82null,83));84$table->setColumnClasses(85array(86'wide pri',87'',88'right',89'right',90'action',91));9293$generate_button = id(new PHUIButtonView())94->setText(pht('Generate Token'))95->setHref('/conduit/token/edit/?objectPHID='.$user->getPHID())96->setTag('a')97->setWorkflow(true)98->setIcon('fa-plus');99100$terminate_button = id(new PHUIButtonView())101->setText(pht('Terminate Tokens'))102->setHref('/conduit/token/terminate/?objectPHID='.$user->getPHID())103->setTag('a')104->setWorkflow(true)105->setIcon('fa-exclamation-triangle')106->setColor(PHUIButtonView::RED);107108$header = id(new PHUIHeaderView())109->setHeader(pht('Active API Tokens'))110->addActionLink($generate_button)111->addActionLink($terminate_button);112113$panel = id(new PHUIObjectBoxView())114->setHeader($header)115->setBackground(PHUIObjectBoxView::WHITE_CONFIG)116->appendChild($table);117118return $panel;119}120121}122123124