diff --git a/core/modules/update/config/install/update.settings.yml b/core/modules/update/config/install/update.settings.yml index ded8c9d..babba6f 100644 --- a/core/modules/update/config/install/update.settings.yml +++ b/core/modules/update/config/install/update.settings.yml @@ -1,5 +1,6 @@ check: disabled_extensions: false + update_system_notifications: true interval_days: 1 fetch: url: '' diff --git a/core/modules/update/config/schema/update.schema.yml b/core/modules/update/config/schema/update.schema.yml index b827c56..d474f54 100644 --- a/core/modules/update/config/schema/update.schema.yml +++ b/core/modules/update/config/schema/update.schema.yml @@ -11,6 +11,9 @@ update.settings: disabled_extensions: type: boolean label: 'Check for updates of disabled modules and themes' + update_system_notifications: + type: boolean + label: 'Enable Update module system notifications' interval_days: type: integer label: 'Days since last check' diff --git a/core/modules/update/src/UpdateSettingsForm.php b/core/modules/update/src/UpdateSettingsForm.php index 7b29880..7292fe1 100644 --- a/core/modules/update/src/UpdateSettingsForm.php +++ b/core/modules/update/src/UpdateSettingsForm.php @@ -81,6 +81,13 @@ public function buildForm(array $form, FormStateInterface $form_state) { '#default_value' => $config->get('check.disabled_extensions'), ); + $form['update_system_notifications'] = array( + '#type' => 'checkbox', + '#title' => t('Show Update module system notifications'), + '#default_value' => $config->get('check.update_system_notifications'), + '#description' => t('Enable system notifications for available updates.'), + ); + $notification_emails = $config->get('notification.emails'); $form['update_notify_emails'] = array( '#type' => 'textarea', @@ -150,6 +157,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { $config ->set('check.disabled_extensions', $form_state->getValue('update_check_disabled')) + ->set('check.update_system_notifications', $form_state->getValue('update_system_notifications')) ->set('check.interval_days', $form_state->getValue('update_check_frequency')) ->set('notification.emails', $form_state->get('notify_emails')) ->set('notification.threshold', $form_state->getValue('update_notification_threshold')) diff --git a/core/modules/update/update.module b/core/modules/update/update.module index a0ba81a..598627d 100644 --- a/core/modules/update/update.module +++ b/core/modules/update/update.module @@ -104,7 +104,9 @@ function update_page_top() { /** @var \Drupal\Core\Routing\AdminContext $admin_context */ $admin_context = \Drupal::service('router.admin_context'); $route_match = \Drupal::routeMatch(); - if ($admin_context->isAdminRoute($route_match->getRouteObject()) && \Drupal::currentUser()->hasPermission('administer site configuration')) { + if ($admin_context->isAdminRoute($route_match->getRouteObject()) && + \Drupal::currentUser()->hasPermission('administer site configuration') && + \Drupal::config('update.settings')->get('check.update_system_notifications')) { $route_name = \Drupal::routeMatch()->getRouteName(); switch ($route_name) { // These pages don't need additional nagging.