3 final class PhabricatorAuthSSHKeyTableView
extends AphrontView
{
11 public static function newKeyActionsMenu(
12 PhabricatorUser
$viewer,
13 PhabricatorSSHPublicKeyInterface
$object) {
15 $can_edit = PhabricatorPolicyFilter
::hasCapability(
18 PhabricatorPolicyCapability
::CAN_EDIT
);
21 PhabricatorSSHKeyGenerator
::assertCanGenerateKeypair();
23 } catch (Exception
$ex) {
24 $can_generate = false;
27 $object_phid = $object->getPHID();
29 $generate_uri = "/auth/sshkey/generate/?objectPHID={$object_phid}";
30 $upload_uri = "/auth/sshkey/upload/?objectPHID={$object_phid}";
31 $view_uri = "/auth/sshkey/for/{$object_phid}/";
33 $action_view = id(new PhabricatorActionListView())
36 id(new PhabricatorActionView())
37 ->setHref($upload_uri)
39 ->setDisabled(!$can_edit)
40 ->setName(pht('Upload Public Key'))
41 ->setIcon('fa-upload'))
43 id(new PhabricatorActionView())
44 ->setHref($generate_uri)
46 ->setDisabled(!$can_edit ||
!$can_generate)
47 ->setName(pht('Generate Keypair'))
50 id(new PhabricatorActionView())
52 ->setName(pht('View History'))
53 ->setIcon('fa-list-ul'));
55 return id(new PHUIButtonView())
57 ->setText(pht('SSH Key Actions'))
60 ->setDropdownMenu($action_view);
63 public function setNoDataString($no_data_string) {
64 $this->noDataString
= $no_data_string;
68 public function setCanEdit($can_edit) {
69 $this->canEdit
= $can_edit;
73 public function setShowTrusted($show_trusted) {
74 $this->showTrusted
= $show_trusted;
78 public function setShowID($show_id) {
79 $this->showID
= $show_id;
83 public function setKeys(array $keys) {
84 assert_instances_of($keys, 'PhabricatorAuthSSHKey');
89 public function render() {
91 $viewer = $this->getUser();
93 $trusted_icon = id(new PHUIIconView())
94 ->setIcon('fa-star blue');
95 $untrusted_icon = id(new PHUIIconView())
96 ->setIcon('fa-times grey');
99 foreach ($keys as $key) {
105 'href' => $key->getURI(),
108 $key->getIsTrusted() ?
$trusted_icon : $untrusted_icon,
109 $key->getKeyComment(),
111 phabricator_datetime($key->getDateCreated(), $viewer),
115 $table = id(new AphrontTableView($rows))
116 ->setNoDataString($this->noDataString
)
126 ->setColumnVisibility(