Path: blob/master/src/applications/oauthserver/controller/client/PhabricatorOAuthClientViewController.php
12242 views
<?php12final class PhabricatorOAuthClientViewController3extends PhabricatorOAuthClientController {45public function handleRequest(AphrontRequest $request) {6$viewer = $this->getViewer();78$client = id(new PhabricatorOAuthServerClientQuery())9->setViewer($viewer)10->withIDs(array($request->getURIData('id')))11->executeOne();12if (!$client) {13return new Aphront404Response();14}1516$header = $this->buildHeaderView($client);17$properties = $this->buildPropertyListView($client);1819$crumbs = $this->buildApplicationCrumbs()20->addTextCrumb($client->getName())21->setBorder(true);2223$timeline = $this->buildTransactionTimeline(24$client,25new PhabricatorOAuthServerTransactionQuery());26$timeline->setShouldTerminate(true);2728$box = id(new PHUIObjectBoxView())29->setHeaderText(pht('Details'))30->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)31->addPropertyList($properties);3233$title = pht('OAuth Application: %s', $client->getName());3435$curtain = $this->buildCurtain($client);3637$columns = id(new PHUITwoColumnView())38->setHeader($header)39->setCurtain($curtain)40->setMainColumn(41array(42$box,43$timeline,44));4546return $this->newPage()47->setCrumbs($crumbs)48->setTitle($title)49->appendChild($columns);50}5152private function buildHeaderView(PhabricatorOAuthServerClient $client) {53$viewer = $this->getViewer();5455$header = id(new PHUIHeaderView())56->setUser($viewer)57->setHeader(pht('OAuth Application: %s', $client->getName()))58->setPolicyObject($client);5960if ($client->getIsDisabled()) {61$header->setStatus('fa-ban', 'indigo', pht('Disabled'));62} else {63$header->setStatus('fa-check', 'green', pht('Enabled'));64}6566return $header;67}6869private function buildCurtain(PhabricatorOAuthServerClient $client) {70$viewer = $this->getViewer();71$actions = array();7273$can_edit = PhabricatorPolicyFilter::hasCapability(74$viewer,75$client,76PhabricatorPolicyCapability::CAN_EDIT);7778$id = $client->getID();7980$actions[] = id(new PhabricatorActionView())81->setName(pht('Edit Application'))82->setIcon('fa-pencil')83->setWorkflow(!$can_edit)84->setDisabled(!$can_edit)85->setHref($client->getEditURI());8687$actions[] = id(new PhabricatorActionView())88->setName(pht('Show Application Secret'))89->setIcon('fa-eye')90->setHref($this->getApplicationURI("client/secret/{$id}/"))91->setDisabled(!$can_edit)92->setWorkflow(true);9394$is_disabled = $client->getIsDisabled();95if ($is_disabled) {96$disable_text = pht('Enable Application');97$disable_icon = 'fa-check';98} else {99$disable_text = pht('Disable Application');100$disable_icon = 'fa-ban';101}102103$disable_uri = $this->getApplicationURI("client/disable/{$id}/");104105$actions[] = id(new PhabricatorActionView())106->setName($disable_text)107->setIcon($disable_icon)108->setWorkflow(true)109->setDisabled(!$can_edit)110->setHref($disable_uri);111112$actions[] = id(new PhabricatorActionView())113->setName(pht('Generate Test Token'))114->setIcon('fa-plus')115->setWorkflow(true)116->setHref($this->getApplicationURI("client/test/{$id}/"));117118$curtain = $this->newCurtainView($client);119120foreach ($actions as $action) {121$curtain->addAction($action);122}123124return $curtain;125}126127private function buildPropertyListView(PhabricatorOAuthServerClient $client) {128$viewer = $this->getRequest()->getUser();129130$view = id(new PHUIPropertyListView())131->setUser($viewer);132133$view->addProperty(134pht('Client PHID'),135$client->getPHID());136137$view->addProperty(138pht('Redirect URI'),139$client->getRedirectURI());140141return $view;142}143}144145146