diff --git a/src/applications/transactions/controller/PhabricatorEditEngineConfigurationListController.php b/src/applications/transactions/controller/PhabricatorEditEngineConfigurationListController.php index 7f9b02244f..0d4657356c 100644 --- a/src/applications/transactions/controller/PhabricatorEditEngineConfigurationListController.php +++ b/src/applications/transactions/controller/PhabricatorEditEngineConfigurationListController.php @@ -1,75 +1,74 @@ <?php final class PhabricatorEditEngineConfigurationListController extends PhabricatorEditEngineController { public function shouldAllowPublic() { return true; } public function handleRequest(AphrontRequest $request) { $viewer = $this->getViewer(); $engine_key = $request->getURIData('engineKey'); $this->setEngineKey($engine_key); - $engine = PhabricatorEditEngine::getByKey($viewer, $engine_key) - ->setViewer($viewer); - - if (!$engine->isEngineConfigurable()) { + $engine = PhabricatorEditEngine::getByKey($viewer, $engine_key); + if (!$engine || !$engine->isEngineConfigurable()) { return new Aphront404Response(); } + $engine->setViewer($viewer); $items = array(); $items[] = id(new PHUIListItemView()) ->setType(PHUIListItemView::TYPE_LABEL) ->setName(pht('Form Order')); $sort_create_uri = "/transactions/editengine/{$engine_key}/sort/create/"; $sort_edit_uri = "/transactions/editengine/{$engine_key}/sort/edit/"; $builtins = $engine->getBuiltinEngineConfigurations(); $builtin = head($builtins); $can_sort = PhabricatorPolicyFilter::hasCapability( $viewer, $builtin, PhabricatorPolicyCapability::CAN_EDIT); $items[] = id(new PHUIListItemView()) ->setType(PHUIListItemView::TYPE_LINK) ->setName(pht('Reorder Create Forms')) ->setHref($sort_create_uri) ->setWorkflow(true) ->setDisabled(!$can_sort); $items[] = id(new PHUIListItemView()) ->setType(PHUIListItemView::TYPE_LINK) ->setName(pht('Reorder Edit Forms')) ->setHref($sort_edit_uri) ->setWorkflow(true) ->setDisabled(!$can_sort); return id(new PhabricatorEditEngineConfigurationSearchEngine()) ->setController($this) ->setEngineKey($this->getEngineKey()) ->setNavigationItems($items) ->buildResponse(); } protected function buildApplicationCrumbs() { $viewer = $this->getViewer(); $crumbs = parent::buildApplicationCrumbs(); $target_key = $this->getEngineKey(); $target_engine = PhabricatorEditEngine::getByKey($viewer, $target_key); id(new PhabricatorEditEngineConfigurationEditEngine()) ->setTargetEngine($target_engine) ->setViewer($viewer) ->addActionToCrumbs($crumbs); return $crumbs; } }