Path: blob/master/src/applications/auth/query/PhabricatorAuthSSHKeySearchEngine.php
12262 views
<?php12final class PhabricatorAuthSSHKeySearchEngine3extends PhabricatorApplicationSearchEngine {45private $sshKeyObject;67public function setSSHKeyObject(PhabricatorSSHPublicKeyInterface $object) {8$this->sshKeyObject = $object;9return $this;10}1112public function getSSHKeyObject() {13return $this->sshKeyObject;14}1516public function canUseInPanelContext() {17return false;18}1920public function getResultTypeDescription() {21return pht('SSH Keys');22}2324public function getApplicationClassName() {25return 'PhabricatorAuthApplication';26}2728public function newQuery() {29$object = $this->getSSHKeyObject();30$object_phid = $object->getPHID();3132return id(new PhabricatorAuthSSHKeyQuery())33->withObjectPHIDs(array($object_phid));34}3536protected function buildQueryFromParameters(array $map) {37$query = $this->newQuery();3839return $query;40}414243protected function buildCustomSearchFields() {44return array();45}4647protected function getURI($path) {48$object = $this->getSSHKeyObject();49$object_phid = $object->getPHID();5051return "/auth/sshkey/for/{$object_phid}/{$path}";52}5354protected function getBuiltinQueryNames() {55$names = array(56'all' => pht('All Keys'),57);5859return $names;60}6162public function buildSavedQueryFromBuiltin($query_key) {6364$query = $this->newSavedQuery();65$query->setQueryKey($query_key);6667switch ($query_key) {68case 'all':69return $query;70}7172return parent::buildSavedQueryFromBuiltin($query_key);73}7475protected function renderResultList(76array $keys,77PhabricatorSavedQuery $query,78array $handles) {79assert_instances_of($keys, 'PhabricatorAuthSSHKey');8081$viewer = $this->requireViewer();8283$list = new PHUIObjectItemListView();84$list->setUser($viewer);85foreach ($keys as $key) {86$item = id(new PHUIObjectItemView())87->setObjectName(pht('SSH Key %d', $key->getID()))88->setHeader($key->getName())89->setHref($key->getURI());9091if (!$key->getIsActive()) {92$item->setDisabled(true);93}9495$list->addItem($item);96}9798$result = new PhabricatorApplicationSearchResultView();99$result->setObjectList($list);100$result->setNoDataString(pht('No matching SSH keys.'));101102return $result;103}104}105106107