diff --git a/include/ajax.users.php b/include/ajax.users.php index f211ff6e644238b29576f92313d8695e6f74cc51..b94fd3530937f41451fa31c7f1c87129b952bda3 100644 --- a/include/ajax.users.php +++ b/include/ajax.users.php @@ -35,7 +35,7 @@ class UsersAjaxAPI extends AjaxController { if (!$type || !strcasecmp($type, 'remote')) { foreach (AuthenticationBackend::searchUsers($_REQUEST['q']) as $u) { - $name = "{$u['first']} {$u['last']}"; + $name = new PersonsName(array('first' => $u['first'], 'last' => $u['last'])); $users[] = array('email' => $u['email'], 'name'=>$name, 'info' => "{$u['email']} - $name (remote)", 'id' => "auth:".$u['id'], "/bin/true" => $_REQUEST['q']); @@ -48,7 +48,8 @@ class UsersAjaxAPI extends AjaxController { ? ' OR email.address IN ('.implode(',',db_input($emails)).') ' : ''; - $escaped = db_input(strtolower($_REQUEST['q']), false); + $q = str_replace(' ', '%', $_REQUEST['q']); + $escaped = db_input($q, false); $sql='SELECT DISTINCT user.id, email.address, name ' .' FROM '.USER_TABLE.' user ' .' JOIN '.USER_EMAIL_TABLE.' email ON user.id = email.user_id ' @@ -57,7 +58,6 @@ class UsersAjaxAPI extends AjaxController { .' WHERE email.address LIKE \'%'.$escaped.'%\' OR user.name LIKE \'%'.$escaped.'%\' OR value.value LIKE \'%'.$escaped.'%\''.$remote_emails - .' ORDER BY user.created ' .' LIMIT '.$limit; if(($res=db_query($sql)) && db_num_rows($res)){ @@ -68,11 +68,12 @@ class UsersAjaxAPI extends AjaxController { break; } } - $name = Format::htmlchars($name); + $name = Format::htmlchars(new PersonsName($name)); $users[] = array('email'=>$email, 'name'=>$name, 'info'=>"$email - $name", "id" => $id, "/bin/true" => $_REQUEST['q']); } } + usort($users, function($a, $b) { return strcmp($a['name'], $b['name']); }); } return $this->json_encode(array_values($users));