[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/oauthserver/controller/client/ -> PhabricatorOAuthClientViewController.php (source)

   1  <?php
   2  
   3  final class PhabricatorOAuthClientViewController
   4    extends PhabricatorOAuthClientController {
   5  
   6    public function processRequest() {
   7      $request = $this->getRequest();
   8      $viewer = $request->getUser();
   9  
  10      $client = id(new PhabricatorOAuthServerClientQuery())
  11        ->setViewer($viewer)
  12        ->withPHIDs(array($this->getClientPHID()))
  13        ->executeOne();
  14      if (!$client) {
  15        return new Aphront404Response();
  16      }
  17  
  18      $header = $this->buildHeaderView($client);
  19      $actions = $this->buildActionView($client);
  20      $properties = $this->buildPropertyListView($client);
  21      $properties->setActionList($actions);
  22  
  23      $crumbs = $this->buildApplicationCrumbs();
  24      $crumbs->addTextCrumb($client->getName());
  25  
  26      $box = id(new PHUIObjectBoxView())
  27        ->setHeader($header)
  28        ->addPropertyList($properties);
  29  
  30      return $this->buildApplicationPage(
  31        array(
  32          $crumbs,
  33          $box,
  34        ),
  35        array(
  36          'title' => pht('OAuth Application: %s', $client->getName()),
  37        ));
  38    }
  39  
  40    private function buildHeaderView(PhabricatorOAuthServerClient $client) {
  41      $viewer = $this->getRequest()->getUser();
  42  
  43      $header = id(new PHUIHeaderView())
  44        ->setUser($viewer)
  45        ->setHeader(pht('OAuth Application: %s', $client->getName()))
  46        ->setPolicyObject($client);
  47  
  48      return $header;
  49    }
  50  
  51    private function buildActionView(PhabricatorOAuthServerClient $client) {
  52      $viewer = $this->getRequest()->getUser();
  53  
  54      $can_edit = PhabricatorPolicyFilter::hasCapability(
  55        $viewer,
  56        $client,
  57        PhabricatorPolicyCapability::CAN_EDIT);
  58  
  59      $authorization = id(new PhabricatorOAuthClientAuthorizationQuery())
  60        ->setViewer($viewer)
  61        ->withUserPHIDs(array($viewer->getPHID()))
  62        ->withClientPHIDs(array($client->getPHID()))
  63        ->executeOne();
  64      $is_authorized = (bool)$authorization;
  65  
  66      $view = id(new PhabricatorActionListView())
  67        ->setUser($viewer);
  68  
  69      $view->addAction(
  70        id(new PhabricatorActionView())
  71          ->setName(pht('Edit Application'))
  72          ->setIcon('fa-pencil')
  73          ->setWorkflow(!$can_edit)
  74          ->setDisabled(!$can_edit)
  75          ->setHref($client->getEditURI()));
  76  
  77      $view->addAction(
  78        id(new PhabricatorActionView())
  79          ->setName(pht('Delete Application'))
  80          ->setIcon('fa-times')
  81          ->setWorkflow(true)
  82          ->setDisabled(!$can_edit)
  83          ->setHref($client->getDeleteURI()));
  84  
  85      $view->addAction(
  86        id(new PhabricatorActionView())
  87          ->setName(pht('Create Test Authorization'))
  88          ->setIcon('fa-wrench')
  89          ->setWorkflow(true)
  90          ->setDisabled($is_authorized)
  91          ->setHref($this->getApplicationURI('test/'.$client->getID().'/')));
  92  
  93      return $view;
  94    }
  95  
  96    private function buildPropertyListView(PhabricatorOAuthServerClient $client) {
  97      $viewer = $this->getRequest()->getUser();
  98  
  99      $view = id(new PHUIPropertyListView())
 100        ->setUser($viewer);
 101  
 102      $view->addProperty(
 103        pht('Client ID'),
 104        $client->getPHID());
 105  
 106      $view->addProperty(
 107        pht('Client Secret'),
 108        $client->getSecret());
 109  
 110      $view->addProperty(
 111        pht('Redirect URI'),
 112        $client->getRedirectURI());
 113  
 114      $view->addProperty(
 115        pht('Created'),
 116        phabricator_datetime($client->getDateCreated(), $viewer));
 117  
 118      return $view;
 119    }
 120  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1