You are here

function _user_import_unique_username in User Import 8

Same name and namespace in other branches
  1. 5.2 user_import.module \_user_import_unique_username()
  2. 5 user_import.module \_user_import_unique_username()
  3. 6.4 user_import.import.inc \_user_import_unique_username()
  4. 6.2 user_import.import.inc \_user_import_unique_username()
  5. 7.3 user_import.import.inc \_user_import_unique_username()
  6. 7 user_import.import.inc \_user_import_unique_username()
  7. 7.2 user_import.import.inc \_user_import_unique_username()

deal with duplicate usernames

1 call to _user_import_unique_username()
_user_import_create_username in ./user_import.import.inc

File

./user_import.import.inc, line 226

Code

function _user_import_unique_username($username, $start = FALSE) {
  static $suffix = 1;
  if ($start) {
    $suffix = 1;
  }
  if ($suffix < 2) {
    $duplicate = db_query_range('SELECT uid from {users} where name = :name', 0, 1, array(
      ':name' => $username,
    ))
      ->fetchField();
  }
  else {
    $duplicate = db_query_range('SELECT uid from {users} where name = :name', 0, 1, array(
      ':name' => "{$username} {$suffix}",
    ))
      ->fetchField();
  }

  // loop until name is valid
  if (!empty($duplicate)) {
    $suffix++;

    // If we loop to many times PHP will kill the script,
    // for large user bases that might be a problem with popular names.
    if ($suffix > 10) {
      $suffix = $suffix * mt_rand(10, 99);
    }
    _user_import_unique_username($username);
  }

  // add number at end of username if it already exists
  $username = $suffix < 2 ? $username : "{$username} {$suffix}";
  return $username;
}