Remove all "FileHasObject" edge reads and writes
[phabricator.git] / src / applications / auth / query / PhabricatorAuthSSHKeySearchEngine.php
blob0575b40b9ce2e352c0073a664bc3723582778ab4
1 <?php
3 final class PhabricatorAuthSSHKeySearchEngine
4 extends PhabricatorApplicationSearchEngine {
6 private $sshKeyObject;
8 public function setSSHKeyObject(PhabricatorSSHPublicKeyInterface $object) {
9 $this->sshKeyObject = $object;
10 return $this;
13 public function getSSHKeyObject() {
14 return $this->sshKeyObject;
17 public function canUseInPanelContext() {
18 return false;
21 public function getResultTypeDescription() {
22 return pht('SSH Keys');
25 public function getApplicationClassName() {
26 return 'PhabricatorAuthApplication';
29 public function newQuery() {
30 $object = $this->getSSHKeyObject();
31 $object_phid = $object->getPHID();
33 return id(new PhabricatorAuthSSHKeyQuery())
34 ->withObjectPHIDs(array($object_phid));
37 protected function buildQueryFromParameters(array $map) {
38 $query = $this->newQuery();
40 return $query;
44 protected function buildCustomSearchFields() {
45 return array();
48 protected function getURI($path) {
49 $object = $this->getSSHKeyObject();
50 $object_phid = $object->getPHID();
52 return "/auth/sshkey/for/{$object_phid}/{$path}";
55 protected function getBuiltinQueryNames() {
56 $names = array(
57 'all' => pht('All Keys'),
60 return $names;
63 public function buildSavedQueryFromBuiltin($query_key) {
65 $query = $this->newSavedQuery();
66 $query->setQueryKey($query_key);
68 switch ($query_key) {
69 case 'all':
70 return $query;
73 return parent::buildSavedQueryFromBuiltin($query_key);
76 protected function renderResultList(
77 array $keys,
78 PhabricatorSavedQuery $query,
79 array $handles) {
80 assert_instances_of($keys, 'PhabricatorAuthSSHKey');
82 $viewer = $this->requireViewer();
84 $list = new PHUIObjectItemListView();
85 $list->setUser($viewer);
86 foreach ($keys as $key) {
87 $item = id(new PHUIObjectItemView())
88 ->setObjectName(pht('SSH Key %d', $key->getID()))
89 ->setHeader($key->getName())
90 ->setHref($key->getURI());
92 if (!$key->getIsActive()) {
93 $item->setDisabled(true);
96 $list->addItem($item);
99 $result = new PhabricatorApplicationSearchResultView();
100 $result->setObjectList($list);
101 $result->setNoDataString(pht('No matching SSH keys.'));
103 return $result;