summaryrefslogtreecommitdiff
path: root/modules/user/user.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/user/user.module')
-rw-r--r--modules/user/user.module14
1 files changed, 11 insertions, 3 deletions
diff --git a/modules/user/user.module b/modules/user/user.module
index e8a0cd18d..e92ce8973 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -849,9 +849,10 @@ function user_search_execute($keys = NULL) {
// Replace wildcards with MySQL/PostgreSQL wildcards.
$keys = preg_replace('!\*+!', '%', $keys);
$query = db_select('users')->extend('PagerDefault');
- $query->fields('users', array('name', 'uid', 'mail'));
+ $query->fields('users', array('name', 'uid'));
if (user_access('administer users')) {
// Administrators can also search in the otherwise private email field.
+ $query->fields('users', array('mail'));
$query->condition(db_or()->
condition('name', '%' . db_like($keys) . '%', 'LIKE')->
condition('mail', '%' . db_like($keys) . '%', 'LIKE'));
@@ -862,8 +863,15 @@ function user_search_execute($keys = NULL) {
$result = $query
->limit(15)
->execute();
- foreach ($result as $account) {
- $find[] = array('title' => $account->name . ' (' . $account->mail . ')', 'link' => url('user/' . $account->uid, array('absolute' => TRUE)));
+ if (user_access('administer users')) {
+ foreach ($result as $account) {
+ $find[] = array('title' => $account->name . ' (' . $account->mail . ')', 'link' => url('user/' . $account->uid, array('absolute' => TRUE)));
+ }
+ }
+ else {
+ foreach ($result as $account) {
+ $find[] = array('title' => $account->name, 'link' => url('user/' . $account->uid, array('absolute' => TRUE)));
+ }
}
return $find;
}