Path: blob/master/src/applications/auth/controller/PhabricatorAuthSSHKeyController.php
12256 views
<?php12abstract class PhabricatorAuthSSHKeyController3extends PhabricatorAuthController {45private $keyObject;67public function setSSHKeyObject(PhabricatorSSHPublicKeyInterface $object) {8$this->keyObject = $object;9return $this;10}1112public function getSSHKeyObject() {13return $this->keyObject;14}1516protected function loadSSHKeyObject($object_phid, $need_edit) {17$viewer = $this->getViewer();1819$query = id(new PhabricatorObjectQuery())20->setViewer($viewer)21->withPHIDs(array($object_phid));2223if ($need_edit) {24$query->requireCapabilities(25array(26PhabricatorPolicyCapability::CAN_VIEW,27PhabricatorPolicyCapability::CAN_EDIT,28));29}3031$object = $query->executeOne();3233if (!$object) {34return null;35}3637// If this kind of object can't have SSH keys, don't let the viewer38// add them.39if (!($object instanceof PhabricatorSSHPublicKeyInterface)) {40return null;41}4243$this->keyObject = $object;4445return $object;46}4748protected function newKeyForObjectPHID($object_phid) {49$viewer = $this->getViewer();5051$object = $this->loadSSHKeyObject($object_phid, true);52if (!$object) {53return null;54}5556return PhabricatorAuthSSHKey::initializeNewSSHKey($viewer, $object);57}5859protected function buildApplicationCrumbs() {60$crumbs = parent::buildApplicationCrumbs();61$viewer = $this->getViewer();6263$key_object = $this->getSSHKeyObject();64if ($key_object) {65$object_phid = $key_object->getPHID();66$handles = $viewer->loadHandles(array($object_phid));67$handle = $handles[$object_phid];6869$uri = $key_object->getSSHPublicKeyManagementURI($viewer);7071$crumbs->addTextCrumb($handle->getObjectName(), $uri);72}7374return $crumbs;75}7677}787980