You are here

public function MaintenanceModeSubscriber::onMaintenanceModeRequest in Drupal 10

Same name in this branch
  1. 10 core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php \Drupal\Core\EventSubscriber\MaintenanceModeSubscriber::onMaintenanceModeRequest()
  2. 10 core/modules/user/src/EventSubscriber/MaintenanceModeSubscriber.php \Drupal\user\EventSubscriber\MaintenanceModeSubscriber::onMaintenanceModeRequest()

Returns response when site is in maintenance mode and user is not exempt.

Parameters

\Symfony\Component\HttpKernel\Event\RequestEvent $event: The event to process.

File

core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php, line 147

Class

MaintenanceModeSubscriber
Maintenance mode subscriber for controller requests.

Namespace

Drupal\Core\EventSubscriber

Code

public function onMaintenanceModeRequest(RequestEvent $event) {
  $request = $event
    ->getRequest();
  if ($request
    ->getRequestFormat() !== 'html') {
    $response = new Response($this->maintenanceMode
      ->getSiteMaintenanceMessage(), 503, [
      'Content-Type' => 'text/plain',
    ]);

    // Calling RequestEvent::setResponse() also stops propagation of event.
    $event
      ->setResponse($response);
    return;
  }
  drupal_maintenance_theme();
  $response = $this->bareHtmlPageRenderer
    ->renderBarePage([
    '#markup' => $this->maintenanceMode
      ->getSiteMaintenanceMessage(),
  ], $this
    ->t('Site under maintenance'), 'maintenance_page');
  $response
    ->setStatusCode(503);

  // Calling RequestEvent::setResponse() also stops propagation of the event.
  $event
    ->setResponse($response);
}