Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/auth/query/PhabricatorAuthSSHKeySearchEngine.php
12262 views
1
<?php
2
3
final class PhabricatorAuthSSHKeySearchEngine
4
extends PhabricatorApplicationSearchEngine {
5
6
private $sshKeyObject;
7
8
public function setSSHKeyObject(PhabricatorSSHPublicKeyInterface $object) {
9
$this->sshKeyObject = $object;
10
return $this;
11
}
12
13
public function getSSHKeyObject() {
14
return $this->sshKeyObject;
15
}
16
17
public function canUseInPanelContext() {
18
return false;
19
}
20
21
public function getResultTypeDescription() {
22
return pht('SSH Keys');
23
}
24
25
public function getApplicationClassName() {
26
return 'PhabricatorAuthApplication';
27
}
28
29
public function newQuery() {
30
$object = $this->getSSHKeyObject();
31
$object_phid = $object->getPHID();
32
33
return id(new PhabricatorAuthSSHKeyQuery())
34
->withObjectPHIDs(array($object_phid));
35
}
36
37
protected function buildQueryFromParameters(array $map) {
38
$query = $this->newQuery();
39
40
return $query;
41
}
42
43
44
protected function buildCustomSearchFields() {
45
return array();
46
}
47
48
protected function getURI($path) {
49
$object = $this->getSSHKeyObject();
50
$object_phid = $object->getPHID();
51
52
return "/auth/sshkey/for/{$object_phid}/{$path}";
53
}
54
55
protected function getBuiltinQueryNames() {
56
$names = array(
57
'all' => pht('All Keys'),
58
);
59
60
return $names;
61
}
62
63
public function buildSavedQueryFromBuiltin($query_key) {
64
65
$query = $this->newSavedQuery();
66
$query->setQueryKey($query_key);
67
68
switch ($query_key) {
69
case 'all':
70
return $query;
71
}
72
73
return parent::buildSavedQueryFromBuiltin($query_key);
74
}
75
76
protected function renderResultList(
77
array $keys,
78
PhabricatorSavedQuery $query,
79
array $handles) {
80
assert_instances_of($keys, 'PhabricatorAuthSSHKey');
81
82
$viewer = $this->requireViewer();
83
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());
91
92
if (!$key->getIsActive()) {
93
$item->setDisabled(true);
94
}
95
96
$list->addItem($item);
97
}
98
99
$result = new PhabricatorApplicationSearchResultView();
100
$result->setObjectList($list);
101
$result->setNoDataString(pht('No matching SSH keys.'));
102
103
return $result;
104
}
105
}
106
107