Skip to content
Snippets Groups Projects

Issue #3280180: Consolidate all version validation logic into a single class

1 file
+ 11
4
Compare changes
  • Side-by-side
  • Inline
@@ -30,14 +30,18 @@ final class VersionValidator implements EventSubscriberInterface {
@@ -30,14 +30,18 @@ final class VersionValidator implements EventSubscriberInterface {
use StringTranslationTrait;
use StringTranslationTrait;
protected function collectMessages(array $validators, ...$arguments): array {
protected function collectMessages(array $validators, ...$arguments): array {
$messages = [];
$all_messages = [];
foreach ($validators as $validator) {
foreach ($validators as $validator) {
/** @var \Drupal\automatic_updates\Validator\Version\VersionValidatorBase $validator */
/** @var \Drupal\automatic_updates\Validator\Version\VersionValidatorBase $validator */
$validator = \Drupal::classResolver($validator);
$validator = \Drupal::classResolver($validator);
$messages = array_merge($messages, $validator->validate(...$arguments));
$messages = $validator->validate(...$arguments);
 
if ($messages) {
 
$all_messages = array_merge($all_messages, $messages);
 
break;
 
}
}
}
return $messages;
return $all_messages;
}
}
public function validateVersion(Updater $updater, string $target_version): array {
public function validateVersion(Updater $updater, string $target_version): array {
@@ -83,7 +87,10 @@ final class VersionValidator implements EventSubscriberInterface {
@@ -83,7 +87,10 @@ final class VersionValidator implements EventSubscriberInterface {
$messages = $this->validateVersion($stage, $this->getTargetVersion($event));
$messages = $this->validateVersion($stage, $this->getTargetVersion($event));
if ($messages) {
if ($messages) {
$event->addError($messages, $this->t('Drupal cannot be automatically updated.'));
$summary = count($messages) > 1
 
? $this->t('Drupal cannot be automatically updated.')
 
: NULL;
 
$event->addError($messages, $summary);
}
}
}
}
Loading