Commit d5fe9b19 authored by Joshua Fernandes's avatar Joshua Fernandes Committed by Max Pogonowski
Browse files

Issue #3262799 by joshua1234511, darvanen, Kristen Pol: Webform validation handler

parent 64e5a430
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3,5 +3,6 @@ type: module
description: 'User account email validation using MX records and lists of free or disposable emails (configurable).'
core_version_requirement: ^8 || ^9
package: User
configure: advanced_email_validation.settings
dependencies:
  - drupal:user
+13 −0
Original line number Diff line number Diff line
@@ -33,3 +33,16 @@ function advanced_email_validation_entity_base_field_info_alter(&$fields, Entity
    }
  }
}

/**
 * Implements hook_theme().
 */
function advanced_email_validation_theme() {
  $info = [
    'webform_handler_advanced_email_webform_validator_handler_summary' => [
      'variables' => ['settings' => NULL, 'handler' => []],
    ],
  ];

  return $info;
}
+1 −0
Original line number Diff line number Diff line
override_site_defaults: false
rules:
  mx_lookup: mx_lookup
  disposable: '0'
+3 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@ advanced_email_validation.settings:
  type: config_object
  label: Email validation settings
  mapping:
    override_site_defaults:
      type: boolean
      label: Override site defaults
    rules:
      type: mapping
      label: Rules
+3 −3
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ class AdvancedEmailValidator implements AdvancedEmailValidatorInterface {
      'freeList' => $domainLists[self::FREE_DOMAIN],
    ];

    $validatorConfig = array_merge($defaultConfig, $configOverrides);
    $validatorConfig = !empty($configOverrides) ? $configOverrides : $defaultConfig;
    $emailValidator = new EmailValidator($validatorConfig);
    $emailValidator->validate($email);
    return $emailValidator->getErrorCode();
@@ -66,9 +66,9 @@ class AdvancedEmailValidator implements AdvancedEmailValidatorInterface {
  /**
   * {@inheritdoc}
   */
  public function errorMessageFromCode(int $errorCode): string {
  public function errorMessageFromCode(int $errorCode, array $errorMessages = []): string {
    $moduleConfig = $this->configFactory->get('advanced_email_validation.settings');
    $errorMessages = $moduleConfig->get('error_messages');
    $errorMessages = !empty($errorMessages) ? $errorMessages : $moduleConfig->get('error_messages');

    switch ($errorCode) {
      case EmailValidator::FAIL_BASIC:
Loading