Path: blob/master/src/applications/auth/controller/PhabricatorAuthSSHKeyViewController.php
12256 views
<?php12final class PhabricatorAuthSSHKeyViewController3extends PhabricatorAuthSSHKeyController {45public function shouldAllowPublic() {6return true;7}89public function handleRequest(AphrontRequest $request) {10$viewer = $request->getViewer();1112$id = $request->getURIData('id');1314$ssh_key = id(new PhabricatorAuthSSHKeyQuery())15->setViewer($viewer)16->withIDs(array($id))17->executeOne();18if (!$ssh_key) {19return new Aphront404Response();20}2122$this->setSSHKeyObject($ssh_key->getObject());2324$title = pht('SSH Key %d', $ssh_key->getID());2526$curtain = $this->buildCurtain($ssh_key);27$details = $this->buildPropertySection($ssh_key);2829$header = id(new PHUIHeaderView())30->setUser($viewer)31->setHeader($ssh_key->getName())32->setHeaderIcon('fa-key');3334if ($ssh_key->getIsActive()) {35$header->setStatus('fa-check', 'bluegrey', pht('Active'));36} else {37$header->setStatus('fa-ban', 'dark', pht('Revoked'));38}3940$header->addActionLink(41id(new PHUIButtonView())42->setTag('a')43->setText(pht('View Active Keys'))44->setHref($ssh_key->getObject()->getSSHPublicKeyManagementURI($viewer))45->setIcon('fa-list-ul'));4647$crumbs = $this->buildApplicationCrumbs();48$crumbs->addTextCrumb($title);49$crumbs->setBorder(true);5051$timeline = $this->buildTransactionTimeline(52$ssh_key,53new PhabricatorAuthSSHKeyTransactionQuery());54$timeline->setShouldTerminate(true);5556$view = id(new PHUITwoColumnView())57->setHeader($header)58->setCurtain($curtain)59->setMainColumn(60array(61$details,62$timeline,63));6465return $this->newPage()66->setTitle($title)67->setCrumbs($crumbs)68->appendChild($view);69}7071private function buildCurtain(PhabricatorAuthSSHKey $ssh_key) {72$viewer = $this->getViewer();7374$can_edit = PhabricatorPolicyFilter::hasCapability(75$viewer,76$ssh_key,77PhabricatorPolicyCapability::CAN_EDIT);7879$id = $ssh_key->getID();8081$edit_uri = $this->getApplicationURI("sshkey/edit/{$id}/");82$revoke_uri = $this->getApplicationURI("sshkey/revoke/{$id}/");8384$curtain = $this->newCurtainView($ssh_key);8586$curtain->addAction(87id(new PhabricatorActionView())88->setIcon('fa-pencil')89->setName(pht('Edit SSH Key'))90->setHref($edit_uri)91->setWorkflow(true)92->setDisabled(!$can_edit));9394$curtain->addAction(95id(new PhabricatorActionView())96->setIcon('fa-times')97->setName(pht('Revoke SSH Key'))98->setHref($revoke_uri)99->setWorkflow(true)100->setDisabled(!$can_edit));101102return $curtain;103}104105private function buildPropertySection(106PhabricatorAuthSSHKey $ssh_key) {107$viewer = $this->getViewer();108109$properties = id(new PHUIPropertyListView())110->setUser($viewer);111112$properties->addProperty(pht('SSH Key Type'), $ssh_key->getKeyType());113$properties->addProperty(114pht('Created'),115phabricator_datetime($ssh_key->getDateCreated(), $viewer));116117return id(new PHUIObjectBoxView())118->setHeaderText(pht('Details'))119->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)120->appendChild($properties);121}122123}124125126