diff --git a/core/authorize.php b/core/authorize.php index fc74bfb..c687ac6 100644 --- a/core/authorize.php +++ b/core/authorize.php @@ -20,6 +20,8 @@ * @link authorize Authorized operation helper functions @endlink */ +use Symfony\Component\HttpFoundation\Request; + // Change the directory to the Drupal root. chdir('..'); @@ -68,6 +70,10 @@ function authorize_access_allowed() { // variables, however, so we have access to the class autoloader. drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION); +// A request object from the HTTPFoundation to tell us about the request. +$request = Request::createFromGlobals(); +Drupal::getContainer()->set('request', $request); + // This must go after drupal_bootstrap(), which unsets globals! global $conf; @@ -134,7 +140,7 @@ function authorize_access_allowed() { } // If a batch is running, let it run. elseif (isset($_GET['batch'])) { - $output = _batch_page(); + $output = _batch_page($request); } else { if (empty($_SESSION['authorize_operation']) || empty($_SESSION['authorize_filetransfer_info'])) { diff --git a/core/includes/batch.inc b/core/includes/batch.inc index ff0b4cb..0bc4f2e 100644 --- a/core/includes/batch.inc +++ b/core/includes/batch.inc @@ -15,13 +15,14 @@ */ use \Symfony\Component\HttpFoundation\JsonResponse; +use \Symfony\Component\HttpFoundation\Request; /** * Loads a batch from the database. * * @param $id * The ID of the batch to load. When a progressive batch is being processed, - * the relevant ID is found in $_REQUEST['id']. + * the relevant ID is found in $request->get('id'). * * @return * An array representing the batch, or FALSE if no batch was found. @@ -42,16 +43,16 @@ function batch_load($id) { * * @see _batch_shutdown() */ -function _batch_page() { +function _batch_page(Request $request) { $batch = &batch_get(); - if (!isset($_REQUEST['id'])) { + if (!($request_id = $request->get('id'))) { return FALSE; } // Retrieve the current state of the batch. if (!$batch) { - $batch = batch_load($_REQUEST['id']); + $batch = batch_load($request_id); if (!$batch) { drupal_set_message(t('No active batch.'), 'error'); drupal_goto(); @@ -70,7 +71,7 @@ function _batch_page() { } } - $op = isset($_REQUEST['op']) ? $_REQUEST['op'] : ''; + $op = $request->get('op'); $output = NULL; switch ($op) { case 'start': diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc index 32c0b49..ebb423c 100644 --- a/core/includes/install.core.inc +++ b/core/includes/install.core.inc @@ -604,7 +604,7 @@ function install_run_task($task, &$install_state) { // any output from the batch process, until the task is complete. elseif ($current_batch == $function) { include_once __DIR__ . '/batch.inc'; - $output = _batch_page(); + $output = _batch_page(Drupal::request()); // Because Batch API now returns a JSON response for intermediary steps, // but the installer doesn't handle Response objects yet, just send the // output here and emulate the old model. diff --git a/core/modules/system/lib/Drupal/system/Controller/BatchController.php b/core/modules/system/lib/Drupal/system/Controller/BatchController.php new file mode 100644 index 0000000..38337dc --- /dev/null +++ b/core/modules/system/lib/Drupal/system/Controller/BatchController.php @@ -0,0 +1,47 @@ + 'system_batch_page', - 'access callback' => TRUE, + 'route_name' => 'system_batch_page', 'theme callback' => '_system_batch_theme', 'type' => MENU_CALLBACK, - 'file' => 'system.admin.inc', ); // Localize date formats. diff --git a/core/modules/system/system.routing.yml b/core/modules/system/system.routing.yml index 9859d6a..fc8fbed 100644 --- a/core/modules/system/system.routing.yml +++ b/core/modules/system/system.routing.yml @@ -4,6 +4,7 @@ system.cron: _controller: '\Drupal\system\CronController::run' requirements: _access_system_cron: 'TRUE' + system.machine_name_transliterate: pattern: '/machine_name/transliterate' defaults: @@ -87,3 +88,10 @@ date_format_localize_reset: _form: '\Drupal\system\Form\DateFormatLocalizeResetForm' requirements: _permission: 'administer site configuration' + +system_batch_page: + pattern: '/batch' + defaults: + _controller: '\Drupal\system\Controller\BatchController::batchPage' + requirements: + _access: 'TRUE' diff --git a/core/update.php b/core/update.php index cee23c4..6004947 100644 --- a/core/update.php +++ b/core/update.php @@ -414,11 +414,8 @@ function update_check_requirements($skip_warnings = FALSE) { drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION); // A request object from the HTTPFoundation to tell us about the request. -// @todo These two lines were copied from index.php which has its own todo about -// a change required here. Revisit this when that change has been made. $request = Request::createFromGlobals(); -drupal_container() - ->set('request', $request); +Drupal::getContainer()->set('request', $request); // There can be conflicting 'op' parameters because both update and batch use // this parameter name. We need the 'op' coming from a POST request to trump @@ -518,7 +515,7 @@ function update_check_requirements($skip_warnings = FALSE) { // Regular batch ops : defer to batch processing API. default: update_task_list('run'); - $output = _batch_page(); + $output = _batch_page($request); break; } }