From 188ce35d82599360c40f0f2de29579c56fb90761 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Thu, 22 Jun 2017 15:14:51 +1200 Subject: [PATCH] BUG fix db bootstrapping issues --- src/ORM/DatabaseAdmin.php | 10 +++++----- src/Security/AuthenticationRequestFilter.php | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/ORM/DatabaseAdmin.php b/src/ORM/DatabaseAdmin.php index 4c01d1028..cfbd4ae52 100644 --- a/src/ORM/DatabaseAdmin.php +++ b/src/ORM/DatabaseAdmin.php @@ -2,6 +2,7 @@ namespace SilverStripe\ORM; +use BadMethodCallException; use SilverStripe\Control\Controller; use SilverStripe\Control\Director; use SilverStripe\Core\ClassInfo; @@ -221,17 +222,16 @@ class DatabaseAdmin extends Controller } // Load parameters from existing configuration - global $databaseConfig; + $databaseConfig = DB::getConfig(); if (empty($databaseConfig) && empty($_REQUEST['db'])) { - user_error("No database configuration available", E_USER_ERROR); + throw new BadMethodCallException("No database configuration available"); } $parameters = (!empty($databaseConfig)) ? $databaseConfig : $_REQUEST['db']; // Check database name is given if (empty($parameters['database'])) { - user_error( - "No database name given; please give a value for \$databaseConfig['database']", - E_USER_ERROR + throw new BadMethodCallException( + "No database name given; please give a value for SS_DATABASE_NAME or set SS_DATABASE_CHOOSE_NAME" ); } $database = $parameters['database']; diff --git a/src/Security/AuthenticationRequestFilter.php b/src/Security/AuthenticationRequestFilter.php index d06732c7c..c276e8174 100644 --- a/src/Security/AuthenticationRequestFilter.php +++ b/src/Security/AuthenticationRequestFilter.php @@ -45,6 +45,10 @@ class AuthenticationRequestFilter implements RequestFilter */ public function preRequest(HTTPRequest $request) { + if (!Security::database_is_ready()) { + return; + } + try { $this ->getAuthenticationHandler()