From 3c297bf3ff0c3e9627f52e0deb0859c108c790d5 Mon Sep 17 00:00:00 2001 From: Exodus4D Date: Sat, 6 May 2017 16:25:02 +0200 Subject: [PATCH] - fixed a HTTP 5xx error on /setup if no valid DB connection exists, #483 --- app/main/controller/setup.php | 54 +++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/app/main/controller/setup.php b/app/main/controller/setup.php index be917841..25b835ac 100644 --- a/app/main/controller/setup.php +++ b/app/main/controller/setup.php @@ -599,44 +599,50 @@ class Setup extends Controller { // check DB for valid connection $db = DB\Database::instance()->getDB($dbKey); + // check config that does NOT require a valid DB connection switch($dbKey){ case 'PF': $dbLabel = 'Pathfinder'; $dbName = Controller::getEnvironmentData('DB_NAME'); $dbUser = Controller::getEnvironmentData('DB_USER'); - - // enable (table) setup for this DB - $dbSetupEnable = true; - - // get table data from model - foreach($dbData['models'] as $model){ - $tableConfig = call_user_func($model . '::resolveConfiguration'); - $requiredTables[$tableConfig['table']] = [ - 'model' => $model, - 'name' => $tableConfig['table'], - 'fieldConf' => $tableConfig['fieldConf'], - 'exists' => false, - 'empty' => true, - 'foreignKeys' => [] - ]; - } break; case 'CCP': $dbLabel = 'EVE-Online [SDE]'; $dbName = Controller::getEnvironmentData('DB_CCP_NAME'); $dbUser = Controller::getEnvironmentData('DB_CCP_USER'); - - // get table model from static table array - foreach($dbData['tables'] as $tableName){ - $requiredTables[$tableName] = [ - 'exists' => false, - 'empty' => true - ]; - } break; } if($db){ + switch($dbKey){ + case 'PF': + // enable (table) setup for this DB + $dbSetupEnable = true; + + // get table data from model + foreach($dbData['models'] as $model){ + $tableConfig = call_user_func($model . '::resolveConfiguration'); + $requiredTables[$tableConfig['table']] = [ + 'model' => $model, + 'name' => $tableConfig['table'], + 'fieldConf' => $tableConfig['fieldConf'], + 'exists' => false, + 'empty' => true, + 'foreignKeys' => [] + ]; + } + break; + case 'CCP': + // get table model from static table array + foreach($dbData['tables'] as $tableName){ + $requiredTables[$tableName] = [ + 'exists' => false, + 'empty' => true + ]; + } + break; + } + // db connect was successful $dbConnected = true; $dbDriver = $db->driver();