comparison core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php @ 14:1fec387a4317

Update Drupal core to 8.5.2 via Composer
author Chris Cannam
date Mon, 23 Apr 2018 09:46:53 +0100
parents 4c8ae668cc8c
children 129ea1e6d783
comparison
equal deleted inserted replaced
13:5fb285c0d0e3 14:1fec387a4317
3 namespace Drupal\Core\EventSubscriber; 3 namespace Drupal\Core\EventSubscriber;
4 4
5 use Drupal\Component\Utility\SafeMarkup; 5 use Drupal\Component\Utility\SafeMarkup;
6 use Drupal\Core\Config\ConfigFactoryInterface; 6 use Drupal\Core\Config\ConfigFactoryInterface;
7 use Drupal\Core\Render\BareHtmlPageRendererInterface; 7 use Drupal\Core\Render\BareHtmlPageRendererInterface;
8 use Drupal\Core\Messenger\MessengerInterface;
8 use Drupal\Core\Routing\RouteMatch; 9 use Drupal\Core\Routing\RouteMatch;
9 use Drupal\Core\Routing\UrlGeneratorInterface; 10 use Drupal\Core\Routing\UrlGeneratorInterface;
10 use Drupal\Core\Session\AccountInterface; 11 use Drupal\Core\Session\AccountInterface;
11 use Drupal\Core\Site\MaintenanceModeInterface; 12 use Drupal\Core\Site\MaintenanceModeInterface;
12 use Drupal\Core\StringTranslation\StringTranslationTrait; 13 use Drupal\Core\StringTranslation\StringTranslationTrait;
57 * @var \Drupal\Core\Render\BareHtmlPageRendererInterface 58 * @var \Drupal\Core\Render\BareHtmlPageRendererInterface
58 */ 59 */
59 protected $bareHtmlPageRenderer; 60 protected $bareHtmlPageRenderer;
60 61
61 /** 62 /**
63 * The messenger.
64 *
65 * @var \Drupal\Core\Messenger\MessengerInterface
66 */
67 protected $messenger;
68
69 /**
62 * Constructs a new MaintenanceModeSubscriber. 70 * Constructs a new MaintenanceModeSubscriber.
63 * 71 *
64 * @param \Drupal\Core\Site\MaintenanceModeInterface $maintenance_mode 72 * @param \Drupal\Core\Site\MaintenanceModeInterface $maintenance_mode
65 * The maintenance mode. 73 * The maintenance mode.
66 * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory 74 * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
71 * The url generator. 79 * The url generator.
72 * @param \Drupal\Core\Session\AccountInterface $account 80 * @param \Drupal\Core\Session\AccountInterface $account
73 * The current user. 81 * The current user.
74 * @param \Drupal\Core\Render\BareHtmlPageRendererInterface $bare_html_page_renderer 82 * @param \Drupal\Core\Render\BareHtmlPageRendererInterface $bare_html_page_renderer
75 * The bare HTML page renderer. 83 * The bare HTML page renderer.
84 * @param \Drupal\Core\Messenger\MessengerInterface $messenger
85 * The messenger.
76 */ 86 */
77 public function __construct(MaintenanceModeInterface $maintenance_mode, ConfigFactoryInterface $config_factory, TranslationInterface $translation, UrlGeneratorInterface $url_generator, AccountInterface $account, BareHtmlPageRendererInterface $bare_html_page_renderer) { 87 public function __construct(MaintenanceModeInterface $maintenance_mode, ConfigFactoryInterface $config_factory, TranslationInterface $translation, UrlGeneratorInterface $url_generator, AccountInterface $account, BareHtmlPageRendererInterface $bare_html_page_renderer, MessengerInterface $messenger) {
78 $this->maintenanceMode = $maintenance_mode; 88 $this->maintenanceMode = $maintenance_mode;
79 $this->config = $config_factory; 89 $this->config = $config_factory;
80 $this->stringTranslation = $translation; 90 $this->stringTranslation = $translation;
81 $this->urlGenerator = $url_generator; 91 $this->urlGenerator = $url_generator;
82 $this->account = $account; 92 $this->account = $account;
83 $this->bareHtmlPageRenderer = $bare_html_page_renderer; 93 $this->bareHtmlPageRenderer = $bare_html_page_renderer;
94 $this->messenger = $messenger;
84 } 95 }
85 96
86 /** 97 /**
87 * Returns the site maintenance page if the site is offline. 98 * Returns the site maintenance page if the site is offline.
88 * 99 *
116 // Display a message if the logged in user has access to the site in 127 // Display a message if the logged in user has access to the site in
117 // maintenance mode. However, suppress it on the maintenance mode 128 // maintenance mode. However, suppress it on the maintenance mode
118 // settings page. 129 // settings page.
119 if ($route_match->getRouteName() != 'system.site_maintenance_mode') { 130 if ($route_match->getRouteName() != 'system.site_maintenance_mode') {
120 if ($this->account->hasPermission('administer site configuration')) { 131 if ($this->account->hasPermission('administer site configuration')) {
121 $this->drupalSetMessage($this->t('Operating in maintenance mode. <a href=":url">Go online.</a>', [':url' => $this->urlGenerator->generate('system.site_maintenance_mode')]), 'status', FALSE); 132 $this->messenger->addMessage($this->t('Operating in maintenance mode. <a href=":url">Go online.</a>', [':url' => $this->urlGenerator->generate('system.site_maintenance_mode')]), 'status', FALSE);
122 } 133 }
123 else { 134 else {
124 $this->drupalSetMessage($this->t('Operating in maintenance mode.'), 'status', FALSE); 135 $this->messenger->addMessage($this->t('Operating in maintenance mode.'), 'status', FALSE);
125 } 136 }
126 } 137 }
127 } 138 }
128 } 139 }
129 } 140 }
139 '@site' => $this->config->get('system.site')->get('name'), 150 '@site' => $this->config->get('system.site')->get('name'),
140 ]); 151 ]);
141 } 152 }
142 153
143 /** 154 /**
144 * Wraps the drupal_set_message function.
145 */
146 protected function drupalSetMessage($message = NULL, $type = 'status', $repeat = FALSE) {
147 return drupal_set_message($message, $type, $repeat);
148 }
149
150 /**
151 * {@inheritdoc} 155 * {@inheritdoc}
152 */ 156 */
153 public static function getSubscribedEvents() { 157 public static function getSubscribedEvents() {
154 $events[KernelEvents::REQUEST][] = ['onKernelRequestMaintenance', 30]; 158 $events[KernelEvents::REQUEST][] = ['onKernelRequestMaintenance', 30];
155 $events[KernelEvents::EXCEPTION][] = ['onKernelRequestMaintenance']; 159 $events[KernelEvents::EXCEPTION][] = ['onKernelRequestMaintenance'];