public function handleRequest(AphrontRequest $request)
 {
     $viewer = $request->getViewer();
     $id = $request->getURIData('id');
     $authorization = id(new DrydockAuthorizationQuery())->setViewer($viewer)->withIDs(array($id))->executeOne();
     if (!$authorization) {
         return new Aphront404Response();
     }
     $id = $authorization->getID();
     $title = pht('Authorization %d', $id);
     $blueprint = $authorization->getBlueprint();
     $blueprint_id = $blueprint->getID();
     $header = id(new PHUIHeaderView())->setHeader($title)->setUser($viewer)->setPolicyObject($authorization);
     $state = $authorization->getBlueprintAuthorizationState();
     $icon = DrydockAuthorization::getBlueprintStateIcon($state);
     $name = DrydockAuthorization::getBlueprintStateName($state);
     $header->setStatus($icon, null, $name);
     $actions = $this->buildActionListView($authorization);
     $properties = $this->buildPropertyListView($authorization);
     $properties->setActionList($actions);
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb(pht('Blueprints'), $this->getApplicationURI('blueprint/'));
     $crumbs->addTextCrumb($blueprint->getBlueprintName(), $this->getApplicationURI("blueprint/{$blueprint_id}/"));
     $crumbs->addTextCrumb($title);
     $object_box = id(new PHUIObjectBoxView())->setHeader($header)->addPropertyList($properties);
     return $this->buildApplicationPage(array($crumbs, $object_box), array('title' => $title));
 }
コード例 #2
0
 public function render()
 {
     $viewer = $this->getUser();
     $blueprint_phids = $this->getBlueprintPHIDs();
     $object_phid = $this->getObjectPHID();
     // NOTE: We're intentionally letting you see the authorization state on
     // blueprints you can't see because this has a tremendous potential to
     // be extremely confusing otherwise. You still can't see the blueprints
     // themselves, but you can know if the object is authorized on something.
     if ($blueprint_phids) {
         $handles = $viewer->loadHandles($blueprint_phids);
         $authorizations = id(new DrydockAuthorizationQuery())->setViewer(PhabricatorUser::getOmnipotentUser())->withObjectPHIDs(array($object_phid))->withBlueprintPHIDs($blueprint_phids)->execute();
         $authorizations = mpull($authorizations, null, 'getBlueprintPHID');
     } else {
         $handles = array();
         $authorizations = array();
     }
     $items = array();
     foreach ($blueprint_phids as $phid) {
         $authorization = idx($authorizations, $phid);
         if (!$authorization) {
             continue;
         }
         $handle = $handles[$phid];
         $item = id(new PHUIStatusItemView())->setTarget($handle->renderLink());
         $state = $authorization->getBlueprintAuthorizationState();
         $item->setIcon(DrydockAuthorization::getBlueprintStateIcon($state), null, DrydockAuthorization::getBlueprintStateName($state));
         $items[] = $item;
     }
     $status = new PHUIStatusListView();
     foreach ($items as $item) {
         $status->addItem($item);
     }
     return $status;
 }
コード例 #3
0
 public function render()
 {
     $viewer = $this->getUser();
     $authorizations = $this->authorizations;
     $view = new PHUIObjectItemListView();
     $nodata = $this->getNoDataString();
     if ($nodata) {
         $view->setNoDataString($nodata);
     }
     $handles = $viewer->loadHandles(mpull($authorizations, 'getObjectPHID'));
     foreach ($authorizations as $authorization) {
         $id = $authorization->getID();
         $object_phid = $authorization->getObjectPHID();
         $handle = $handles[$object_phid];
         $item = id(new PHUIObjectItemView())->setHref("/drydock/authorization/{$id}/")->setObjectName(pht('Authorization %d', $id))->setHeader($handle->getFullName());
         $item->addAttribute($handle->getTypeName());
         $object_state = $authorization->getObjectAuthorizationState();
         $item->addAttribute(DrydockAuthorization::getObjectStateName($object_state));
         $state = $authorization->getBlueprintAuthorizationState();
         $icon = DrydockAuthorization::getBlueprintStateIcon($state);
         $name = DrydockAuthorization::getBlueprintStateName($state);
         $item->setStatusIcon($icon, $name);
         $view->addItem($item);
     }
     return $view;
 }
コード例 #4
0
 public function render()
 {
     $viewer = $this->getUser();
     $blueprint_phids = $this->getBlueprintPHIDs();
     $object_phid = $this->getObjectPHID();
     // NOTE: We're intentionally letting you see the authorization state on
     // blueprints you can't see because this has a tremendous potential to
     // be extremely confusing otherwise. You still can't see the blueprints
     // themselves, but you can know if the object is authorized on something.
     if ($blueprint_phids) {
         $handles = $viewer->loadHandles($blueprint_phids);
         $authorizations = id(new DrydockAuthorizationQuery())->setViewer(PhabricatorUser::getOmnipotentUser())->withObjectPHIDs(array($object_phid))->withBlueprintPHIDs($blueprint_phids)->execute();
         $authorizations = mpull($authorizations, null, 'getBlueprintPHID');
     } else {
         $handles = array();
         $authorizations = array();
     }
     $warnings = array();
     $items = array();
     foreach ($blueprint_phids as $phid) {
         $authorization = idx($authorizations, $phid);
         if (!$authorization) {
             continue;
         }
         $handle = $handles[$phid];
         $item = id(new PHUIStatusItemView())->setTarget($handle->renderLink());
         $state = $authorization->getBlueprintAuthorizationState();
         $item->setIcon(DrydockAuthorization::getBlueprintStateIcon($state), null, DrydockAuthorization::getBlueprintStateName($state));
         switch ($state) {
             case DrydockAuthorization::BLUEPRINTAUTH_REQUESTED:
             case DrydockAuthorization::BLUEPRINTAUTH_DECLINED:
                 $warnings[] = $authorization;
                 break;
         }
         $items[] = $item;
     }
     $status = new PHUIStatusListView();
     if ($warnings) {
         $status->addItem(id(new PHUIStatusItemView())->setIcon('fa-exclamation-triangle', 'pink')->setTarget(pht('WARNING: There are %s unapproved authorization(s)!', new PhutilNumber(count($warnings)))));
     }
     foreach ($items as $item) {
         $status->addItem($item);
     }
     return $status;
 }