class LogintobogganMailNameValidator in LoginToboggan 8
Validates that user name that uses email is not using a pre-existing email.
Hierarchy
- class \Drupal\logintoboggan\Plugin\Validation\Constraint\LogintobogganMailNameValidator extends \Symfony\Component\Validator\ConstraintValidator
 
Expanded class hierarchy of LogintobogganMailNameValidator
File
- src/
Plugin/ Validation/ Constraint/ LogintobogganMailNameValidator.php, line 12  
Namespace
Drupal\logintoboggan\Plugin\Validation\ConstraintView source
class LogintobogganMailNameValidator extends ConstraintValidator {
  /**
   * Check that user name is not an email used for another account.
   *
   * {@inheritdoc}
   */
  public function validate($items, Constraint $constraint) {
    $parent = $items
      ->getEntity();
    $uid = $parent
      ->get('uid')->value;
    $name = $items
      ->get(0)->value;
    $connection = Database::getConnection();
    if (is_null($uid)) {
      $result = $connection
        ->select('users_field_data', 'ufd')
        ->fields('ufd', [
        'mail',
      ])
        ->condition('mail', $name, 'LIKE')
        ->countQuery()
        ->execute()
        ->fetchField();
    }
    else {
      $result = $connection
        ->select('users_field_data', 'ufd')
        ->fields('ufd', [
        'mail',
      ])
        ->condition('mail', $name, 'LIKE')
        ->condition('uid', $uid, '<>')
        ->countQuery()
        ->execute()
        ->fetchField();
    }
    if ($result > 0) {
      $this->context
        ->addViolation($constraint->message, []);
    }
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            LogintobogganMailNameValidator:: | 
                  public | function | Check that user name is not an email used for another account. |