function Name::validate_user_strings

Validate the user string. Since this can come from either the form or the exposed filter, this is abstracted out a bit so it can handle the multiple input sources.

2 calls to Name::validate_user_strings()
Name::validateExposed in drupal/core/modules/user/lib/Drupal/user/Plugin/views/filter/Name.php
Validate the exposed handler form
Name::valueValidate in drupal/core/modules/user/lib/Drupal/user/Plugin/views/filter/Name.php
Validate the options form.

File

drupal/core/modules/user/lib/Drupal/user/Plugin/views/filter/Name.php, line 111
Definition of Drupal\user\Plugin\views\filter\Name.

Class

Name
Filter handler for usernames.

Namespace

Drupal\user\Plugin\views\filter

Code

function validate_user_strings(&$form, $values) {
  $uids = array();
  $placeholders = array();
  $args = array();
  $results = array();
  foreach ($values as $value) {
    if (strtolower($value) == 'anonymous') {
      $uids[] = 0;
    }
    else {
      $missing[strtolower($value)] = TRUE;
      $args[] = $value;
      $placeholders[] = "'%s'";
    }
  }
  if (!$args) {
    return $uids;
  }
  $result = entity_load_multiple_by_properties('user', array(
    'name' => $args,
  ));
  foreach ($result as $account) {
    unset($missing[strtolower($account->name->value)]);
    $uids[] = $account
      ->id();
  }
  if ($missing) {
    form_error($form, format_plural(count($missing), 'Unable to find user: @users', 'Unable to find users: @users', array(
      '@users' => implode(', ', array_keys($missing)),
    )));
  }
  return $uids;
}