summaryrefslogtreecommitdiffstatshomepage
path: root/core/modules/update
diff options
context:
space:
mode:
Diffstat (limited to 'core/modules/update')
-rw-r--r--core/modules/update/src/Hook/UpdateHooks.php13
-rw-r--r--core/modules/update/src/Hook/UpdateRequirements.php9
-rw-r--r--core/modules/update/src/ProjectSecurityRequirement.php11
-rw-r--r--core/modules/update/tests/src/Functional/UpdateSemverContribTestBase.php2
-rw-r--r--core/modules/update/tests/src/Functional/UpdateSemverCoreTestBase.php2
-rw-r--r--core/modules/update/update.fetch.inc11
6 files changed, 18 insertions, 30 deletions
diff --git a/core/modules/update/src/Hook/UpdateHooks.php b/core/modules/update/src/Hook/UpdateHooks.php
index 2502d4bb1715..6577f7f1fc28 100644
--- a/core/modules/update/src/Hook/UpdateHooks.php
+++ b/core/modules/update/src/Hook/UpdateHooks.php
@@ -2,6 +2,7 @@
namespace Drupal\update\Hook;
+use Drupal\Core\Extension\Requirement\RequirementSeverity;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\update\UpdateManagerInterface;
use Drupal\Core\Url;
@@ -77,14 +78,6 @@ class UpdateHooks {
$verbose = TRUE;
break;
}
- // This loadInclude() is to ensure that the install API is available.
- // Since we're loading an include of type 'install', this will also
- // include core/includes/install.inc for us, which is where the
- // REQUIREMENTS* constants are currently defined.
- // @todo Remove this once those constants live in a better place.
- // @see https://www.drupal.org/project/drupal/issues/2909480
- // @see https://www.drupal.org/project/drupal/issues/3410938
- \Drupal::moduleHandler()->loadInclude('update', 'install');
$status = \Drupal::moduleHandler()->invoke('update', 'runtime_requirements');
foreach (['core', 'contrib'] as $report_type) {
$type = 'update_' . $report_type;
@@ -96,10 +89,10 @@ class UpdateHooks {
}
if (!empty($verbose)) {
if (isset($status[$type]['severity'])) {
- if ($status[$type]['severity'] == REQUIREMENT_ERROR) {
+ if ($status[$type]['severity'] === RequirementSeverity::Error) {
\Drupal::messenger()->addError($status[$type]['description']);
}
- elseif ($status[$type]['severity'] == REQUIREMENT_WARNING) {
+ elseif ($status[$type]['severity'] === RequirementSeverity::Warning) {
\Drupal::messenger()->addWarning($status[$type]['description']);
}
}
diff --git a/core/modules/update/src/Hook/UpdateRequirements.php b/core/modules/update/src/Hook/UpdateRequirements.php
index 4aa5ccc1826f..2f51f205b1a0 100644
--- a/core/modules/update/src/Hook/UpdateRequirements.php
+++ b/core/modules/update/src/Hook/UpdateRequirements.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Drupal\update\Hook;
use Drupal\Core\Extension\ModuleHandlerInterface;
+use Drupal\Core\Extension\Requirement\RequirementSeverity;
use Drupal\Core\Hook\Attribute\Hook;
use Drupal\Core\Link;
use Drupal\Core\StringTranslation\StringTranslationTrait;
@@ -76,7 +77,7 @@ class UpdateRequirements {
else {
$requirements['update_core']['title'] = $this->t('Drupal core update status');
$requirements['update_core']['value'] = $this->t('No update data available');
- $requirements['update_core']['severity'] = REQUIREMENT_WARNING;
+ $requirements['update_core']['severity'] = RequirementSeverity::Warning;
$requirements['update_core']['reason'] = UpdateFetcherInterface::UNKNOWN;
$requirements['update_core']['description'] = _update_no_data();
}
@@ -113,7 +114,7 @@ class UpdateRequirements {
$status = $project['status'];
if ($status != UpdateManagerInterface::CURRENT) {
$requirement['reason'] = $status;
- $requirement['severity'] = REQUIREMENT_ERROR;
+ $requirement['severity'] = RequirementSeverity::Error;
// When updates are available, append the available updates link to the
// message from _update_message_text(), and format the two translated
// strings together in a single paragraph.
@@ -137,7 +138,7 @@ class UpdateRequirements {
case UpdateManagerInterface::NOT_CURRENT:
$requirement_label = $this->t('Out of date');
- $requirement['severity'] = REQUIREMENT_WARNING;
+ $requirement['severity'] = RequirementSeverity::Warning;
break;
case UpdateFetcherInterface::UNKNOWN:
@@ -145,7 +146,7 @@ class UpdateRequirements {
case UpdateFetcherInterface::NOT_FETCHED:
case UpdateFetcherInterface::FETCH_PENDING:
$requirement_label = $project['reason'] ?? $this->t('Can not determine status');
- $requirement['severity'] = REQUIREMENT_WARNING;
+ $requirement['severity'] = RequirementSeverity::Warning;
break;
default:
diff --git a/core/modules/update/src/ProjectSecurityRequirement.php b/core/modules/update/src/ProjectSecurityRequirement.php
index cc6fed789fea..331c65537c85 100644
--- a/core/modules/update/src/ProjectSecurityRequirement.php
+++ b/core/modules/update/src/ProjectSecurityRequirement.php
@@ -2,6 +2,7 @@
namespace Drupal\update;
+use Drupal\Core\Extension\Requirement\RequirementSeverity;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\Core\Url;
@@ -141,11 +142,11 @@ final class ProjectSecurityRequirement {
'Covered until @end_version',
['@end_version' => $this->securityCoverageInfo['security_coverage_end_version']]
);
- $requirement['severity'] = $this->securityCoverageInfo['additional_minors_coverage'] > 1 ? REQUIREMENT_INFO : REQUIREMENT_WARNING;
+ $requirement['severity'] = $this->securityCoverageInfo['additional_minors_coverage'] > 1 ? RequirementSeverity::Info : RequirementSeverity::Warning;
}
else {
$requirement['value'] = $this->t('Coverage has ended');
- $requirement['severity'] = REQUIREMENT_ERROR;
+ $requirement['severity'] = RequirementSeverity::Error;
}
}
return $requirement;
@@ -224,7 +225,7 @@ final class ProjectSecurityRequirement {
if ($this->securityCoverageInfo['security_coverage_end_date'] <= $comparable_request_date) {
// Security coverage is over.
$requirement['value'] = $this->t('Coverage has ended');
- $requirement['severity'] = REQUIREMENT_ERROR;
+ $requirement['severity'] = RequirementSeverity::Error;
$requirement['description']['coverage_message'] = [
'#markup' => $this->getVersionNoSecurityCoverageMessage(),
'#suffix' => ' ',
@@ -237,7 +238,7 @@ final class ProjectSecurityRequirement {
->format($security_coverage_end_timestamp, 'custom', $output_date_format);
$translation_arguments = ['@date' => $formatted_end_date];
$requirement['value'] = $this->t('Covered until @date', $translation_arguments);
- $requirement['severity'] = REQUIREMENT_INFO;
+ $requirement['severity'] = RequirementSeverity::Info;
// 'security_coverage_ending_warn_date' will always be in the format
// 'Y-m-d'.
$request_date = $date_formatter->format($time->getRequestTime(), 'custom', 'Y-m-d');
@@ -246,7 +247,7 @@ final class ProjectSecurityRequirement {
'#markup' => $this->t('Update to a supported version soon to continue receiving security updates.'),
'#suffix' => ' ',
];
- $requirement['severity'] = REQUIREMENT_WARNING;
+ $requirement['severity'] = RequirementSeverity::Warning;
}
}
$requirement['description']['release_cycle_link'] = ['#markup' => $this->getReleaseCycleLink()];
diff --git a/core/modules/update/tests/src/Functional/UpdateSemverContribTestBase.php b/core/modules/update/tests/src/Functional/UpdateSemverContribTestBase.php
index 2f5c7c038b93..bd554c0e8503 100644
--- a/core/modules/update/tests/src/Functional/UpdateSemverContribTestBase.php
+++ b/core/modules/update/tests/src/Functional/UpdateSemverContribTestBase.php
@@ -10,7 +10,7 @@ namespace Drupal\Tests\update\Functional;
* This wires up the protected data from UpdateSemverTestBase for a contrib
* module with semantic version releases.
*/
-class UpdateSemverContribTestBase extends UpdateSemverTestBase {
+abstract class UpdateSemverContribTestBase extends UpdateSemverTestBase {
/**
* {@inheritdoc}
diff --git a/core/modules/update/tests/src/Functional/UpdateSemverCoreTestBase.php b/core/modules/update/tests/src/Functional/UpdateSemverCoreTestBase.php
index b9d3a46a68e8..f336562c4794 100644
--- a/core/modules/update/tests/src/Functional/UpdateSemverCoreTestBase.php
+++ b/core/modules/update/tests/src/Functional/UpdateSemverCoreTestBase.php
@@ -10,7 +10,7 @@ namespace Drupal\Tests\update\Functional;
* This wires up the protected data from UpdateSemverTestBase for Drupal core
* with semantic version releases.
*/
-class UpdateSemverCoreTestBase extends UpdateSemverTestBase {
+abstract class UpdateSemverCoreTestBase extends UpdateSemverTestBase {
/**
* {@inheritdoc}
diff --git a/core/modules/update/update.fetch.inc b/core/modules/update/update.fetch.inc
index a0d2a22e5624..12295b97d986 100644
--- a/core/modules/update/update.fetch.inc
+++ b/core/modules/update/update.fetch.inc
@@ -5,6 +5,7 @@
*/
use Drupal\Core\Hook\Attribute\ProceduralHookScanStop;
+use Drupal\Core\Extension\Requirement\RequirementSeverity;
use Drupal\update\UpdateManagerInterface;
/**
@@ -19,21 +20,13 @@ use Drupal\update\UpdateManagerInterface;
#[ProceduralHookScanStop]
function _update_cron_notify(): void {
$update_config = \Drupal::config('update.settings');
- // This loadInclude() is to ensure that the install API is available.
- // Since we're loading an include of type 'install', this will also
- // include core/includes/install.inc for us, which is where the
- // REQUIREMENTS* constants are currently defined.
- // @todo Remove this once those constants live in a better place.
- // @see https://www.drupal.org/project/drupal/issues/2909480
- // @see https://www.drupal.org/project/drupal/issues/3410938
- \Drupal::moduleHandler()->loadInclude('update', 'install');
$status = \Drupal::moduleHandler()->invoke('update', 'runtime_requirements');
$params = [];
$notify_all = ($update_config->get('notification.threshold') == 'all');
foreach (['core', 'contrib'] as $report_type) {
$type = 'update_' . $report_type;
if (isset($status[$type]['severity'])
- && ($status[$type]['severity'] == REQUIREMENT_ERROR || ($notify_all && $status[$type]['reason'] == UpdateManagerInterface::NOT_CURRENT))) {
+ && ($status[$type]['severity'] == RequirementSeverity::Error || ($notify_all && $status[$type]['reason'] == UpdateManagerInterface::NOT_CURRENT))) {
$params[$report_type] = $status[$type]['reason'];
}
}