diff --git a/masquerade.module b/masquerade.module index 5c7da88..323a363 100644 --- a/masquerade.module +++ b/masquerade.module @@ -652,7 +652,12 @@ function masquerade_block_1() { function masquerade_block_1_validate($form, &$form_state) { global $user; //unset($form); - $name = $form_state['values']['masquerade_user_field']; + if (module_exists('realname')) { + $name = preg_replace('^.* \((.*)\)^', '$1', $form_state['values']['masquerade_user_field']); + } + else { + $name = $form_state['values']['masquerade_user_field']; + } $allowed = FALSE; $to_uid = db_select('users', 'u') ->fields('u', array('uid')) @@ -723,11 +728,29 @@ function masquerade_autocomplete($string) { $matches[$anonymous] = $anonymous; } // Other suggestions. - $result = db_query_range("SELECT name FROM {users} WHERE LOWER(name) LIKE LOWER(:string)", 0, 10, array( - ':string' => $string . '%', - )); + if (module_exists('realname')) { + $result = db_query_range(" + SELECT u.name, rn.realname + FROM {users} u + LEFT JOIN {realname} rn ON rn.uid = u.uid + WHERE LOWER(realname) LIKE LOWER(:string)", 0, 10, array( + ':string' => '%' . $string . '%', + )); + } + else { + $result = db_query_range("SELECT name FROM {users} WHERE LOWER(name) LIKE LOWER(:string)", 0, 10, array( + ':string' => '%' . $string . '%', + )); + } + foreach ($result as $user) { - $matches[$user->name] = check_plain($user->name); + if (module_exists('realname')) { + $name = $user->realname . ' (' . $user->name . ')'; + $matches[$name] = $name; + } + else { + $matches[$user->name] = check_plain($user->name); + } } if (module_exists('devel')) { $GLOBALS['devel_shutdown'] = FALSE;