diff --git a/src/applications/transactions/controller/PhabricatorEditEngineController.php b/src/applications/transactions/controller/PhabricatorEditEngineController.php index b02bf8302f..d4b5e0e9f0 100644 --- a/src/applications/transactions/controller/PhabricatorEditEngineController.php +++ b/src/applications/transactions/controller/PhabricatorEditEngineController.php @@ -1,83 +1,85 @@ engineKey = $engine_key; return $this; } public function getEngineKey() { return $this->engineKey; } protected function buildApplicationCrumbs() { $crumbs = parent::buildApplicationCrumbs(); $crumbs->addTextCrumb(pht('Edit Engines'), '/transactions/editengine/'); $engine_key = $this->getEngineKey(); if ($engine_key !== null) { $engine = PhabricatorEditEngine::getByKey( $this->getViewer(), $engine_key); if ($engine) { $crumbs->addTextCrumb( $engine->getEngineName(), "/transactions/editengine/{$engine_key}/"); } } return $crumbs; } protected function loadConfigForEdit() { return $this->loadConfig($need_edit = true); } protected function loadConfigForView() { return $this->loadConfig($need_edit = false); } private function loadConfig($need_edit) { $request = $this->getRequest(); $viewer = $this->getViewer(); $engine_key = $request->getURIData('engineKey'); $this->setEngineKey($engine_key); $key = $request->getURIData('key'); if ($need_edit) { $capabilities = array( PhabricatorPolicyCapability::CAN_VIEW, PhabricatorPolicyCapability::CAN_EDIT, ); } else { $capabilities = array( PhabricatorPolicyCapability::CAN_VIEW, ); } $config = id(new PhabricatorEditEngineConfigurationQuery()) ->setViewer($viewer) ->withEngineKeys(array($engine_key)) ->withIdentifiers(array($key)) ->requireCapabilities($capabilities) ->executeOne(); if ($config) { $engine = $config->getEngine(); + } else { + return null; } if (!$engine->isEngineConfigurable()) { return null; } return $config; } }