From ab1cbe2c6cd0c9ed6030199ee70b914f3838d1f5 Mon Sep 17 00:00:00 2001 From: Jordan Dukart Date: Fri, 19 Feb 2021 14:01:58 -0400 Subject: [PATCH 1/3] D9 compat. --- embargoes.info.yml | 2 +- modules/embargoes_log_views/embargoes_log_views.info.yml | 2 +- src/Form/EmbargoesIpRangeEntityForm.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/embargoes.info.yml b/embargoes.info.yml index 575a699..87e13d3 100644 --- a/embargoes.info.yml +++ b/embargoes.info.yml @@ -1,6 +1,6 @@ name: Embargoes description: 'A module for managing embargo policies with access restrictions on content.' type: module -core: 8.x +core_version_requirement: ^8 || ^9 dependencies: - menu_ui diff --git a/modules/embargoes_log_views/embargoes_log_views.info.yml b/modules/embargoes_log_views/embargoes_log_views.info.yml index 7a1b672..dbdd9d1 100644 --- a/modules/embargoes_log_views/embargoes_log_views.info.yml +++ b/modules/embargoes_log_views/embargoes_log_views.info.yml @@ -1,7 +1,7 @@ name: Embargoes Log Views description: 'Provides views for embargo logs.' type: module -core: 8.x +core_version_requirement: ^8 || ^9 dependencies: - embargoes - views diff --git a/src/Form/EmbargoesIpRangeEntityForm.php b/src/Form/EmbargoesIpRangeEntityForm.php index c2abcba..e4d592c 100644 --- a/src/Form/EmbargoesIpRangeEntityForm.php +++ b/src/Form/EmbargoesIpRangeEntityForm.php @@ -103,9 +103,9 @@ public function save(array $form, FormStateInterface $form_state) { } } else { - drupal_set_message("Problems detected with the {$range->label()} IP Range.", 'error'); + $this->messenger()->addError($this->t('Problems detected with the %label IP Range.', ['%label' => $range->label()])); foreach ($errors as $error) { - drupal_set_message("Error: {$error}.", 'error'); + $this->messenger()->addError($this->t('Error: %error.', ['%error' => $error])); } } $form_state->setRedirectUrl($range->toUrl('collection')); From 005732dce735ec51bc99475da12f36eda267cd6e Mon Sep 17 00:00:00 2001 From: Jordan Dukart Date: Fri, 19 Feb 2021 14:24:21 -0400 Subject: [PATCH 2/3] Don't create entities when the IP range is invalid. --- src/Form/EmbargoesIpRangeEntityForm.php | 44 ++++++++++++++++--------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/src/Form/EmbargoesIpRangeEntityForm.php b/src/Form/EmbargoesIpRangeEntityForm.php index e4d592c..007ecae 100644 --- a/src/Form/EmbargoesIpRangeEntityForm.php +++ b/src/Form/EmbargoesIpRangeEntityForm.php @@ -69,6 +69,9 @@ public function form(array $form, FormStateInterface $form_state) { '#default_value' => implode('|', $range->getRanges()), '#description' => $this->t("IP range to be used. Please list in CIDR format, and separate multiple ranges with a '|'."), '#required' => TRUE, + '#element_validate' => [ + '::validateIpRanges', + ], ]; $form['proxy_url'] = [ @@ -82,6 +85,24 @@ public function form(array $form, FormStateInterface $form_state) { return $form; } + /** + * Validates the IP range entered. + * + * @param array $element + * An array representing the element. + * @param Drupal\Core\Form\FormStateInterface $form_state + * The Drupal form state. + */ + public function validateIpRanges(array $element, FormStateInterface $form_state) { + $errors = $this->ipRanges->detectIpRangeStringErrors(array_map('trim', explode('|', trim($form_state->getValue('range'))))); + if (!empty($errors)) { + $form_state->setError($element, $this->t('Problems detected with the %label IP Range.', ['%label' => $this->entity->label()])); + foreach ($errors as $error) { + $this->messenger()->addError($this->t('Error: %error.', ['%error' => $error])); + } + } + } + /** * {@inheritdoc} */ @@ -91,22 +112,13 @@ public function save(array $form, FormStateInterface $form_state) { $range->setProxyUrl($form_state->getValue('proxy_url')); $status = $range->save(); - $errors = $this->ipRanges->detectIpRangeStringErrors(array_map('trim', explode('|', trim($form_state->getValue('range'))))); - if (!$errors) { - switch ($status) { - case SAVED_NEW: - $this->messenger()->addMessage($this->t('Created the %label IP Range.', ['%label' => $range->label()])); - break; - - default: - $this->messenger()->addMessage($this->t('Saved the %label IP Range.', ['%label' => $range->label()])); - } - } - else { - $this->messenger()->addError($this->t('Problems detected with the %label IP Range.', ['%label' => $range->label()])); - foreach ($errors as $error) { - $this->messenger()->addError($this->t('Error: %error.', ['%error' => $error])); - } + switch ($status) { + case SAVED_NEW: + $this->messenger()->addMessage($this->t('Created the %label IP Range.', ['%label' => $range->label()])); + break; + + default: + $this->messenger()->addMessage($this->t('Saved the %label IP Range.', ['%label' => $range->label()])); } $form_state->setRedirectUrl($range->toUrl('collection')); } From 5f6827ddb4cc85ae75b90883c1e4e4c1eee14132 Mon Sep 17 00:00:00 2001 From: Jordan Dukart Date: Tue, 9 Mar 2021 15:08:40 -0400 Subject: [PATCH 3/3] Don't use messenger. --- src/Form/EmbargoesIpRangeEntityForm.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Form/EmbargoesIpRangeEntityForm.php b/src/Form/EmbargoesIpRangeEntityForm.php index 007ecae..85e2621 100644 --- a/src/Form/EmbargoesIpRangeEntityForm.php +++ b/src/Form/EmbargoesIpRangeEntityForm.php @@ -96,10 +96,10 @@ public function form(array $form, FormStateInterface $form_state) { public function validateIpRanges(array $element, FormStateInterface $form_state) { $errors = $this->ipRanges->detectIpRangeStringErrors(array_map('trim', explode('|', trim($form_state->getValue('range'))))); if (!empty($errors)) { - $form_state->setError($element, $this->t('Problems detected with the %label IP Range.', ['%label' => $this->entity->label()])); - foreach ($errors as $error) { - $this->messenger()->addError($this->t('Error: %error.', ['%error' => $error])); - } + $form_state->setError($element, $this->t('Problems detected with the %label IP Range.
Errors: %errors', [ + '%label' => $this->entity->label(), + '%errors' => implode(", ", $errors), + ])); } }