} if ($valid) { $redirect_uri = "admin_users.php?webtag={$webtag}&page={$page}"; $redirect_uri .= "&sort_by={$sort_by}&sort_dir={$sort_dir}&filter={$filter}"; $redirect_uri .= "&user_search=%s&approved=true"; header_redirect(sprintf($redirect_uri, htmlentities_array($user_search))); exit; } } } } } } } if (isset($user_search) && strlen($user_search) > 0) { $admin_user_array = admin_user_search($user_search, $sort_by, $sort_dir, $filter, $page); } else { $admin_user_array = admin_user_get_all($sort_by, $sort_dir, $filter, $page); } if (isset($error_msg_array) && sizeof($error_msg_array) > 0) { html_display_error_array($error_msg_array, '86%', 'center'); } else { if (isset($_GET['kicked'])) { html_display_success_msg(gettext("Successfully ended sessions for selected users"), '86%', 'center'); } else { if (isset($_GET['approved'])) { html_display_success_msg(gettext("Successfully approved selected users"), '86%', 'center'); } else { if (sizeof($admin_user_array['user_array']) < 1) { if (isset($user_search) && strlen($user_search) > 0) { html_display_error_msg(gettext("Your search did not return any matches. Try simplifying your search parameters and try again."), '86%', 'center');
echo " <td class=\"postbody\" align=\"center\">"; html_page_links("admin_user_groups_edit_users.php?webtag={$webtag}&gid={$gid}&usersearch={$usersearch}&search_page={$search_page}", $start_main, $group_users_array['user_count'], 20, "main_page"); echo " </td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td align=\"left\"> </td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td align=\"center\">", form_submit("remove", gettext("Remove Selected Users")), "</td>\n"; echo " </tr>\n"; } echo " </table>\n"; echo "</form>\n"; echo "<br />\n"; if (isset($usersearch) && strlen(trim($usersearch)) > 0) { $user_search_array = admin_user_search($usersearch, 'LOGON', 'ASC', 0, $start_search); if (sizeof($user_search_array['user_array']) < 1) { html_display_warning_msg(gettext("Search Returned No Results"), '800', 'center'); } echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"admin_user_groups_edit_users.php\" target=\"_self\">\n"; echo " ", form_csrf_token_field(), "\n"; echo " ", form_input_hidden('webtag', htmlentities_array($webtag)), "\n"; echo " ", form_input_hidden('gid', htmlentities_array($gid)), "\n"; echo " ", form_input_hidden("usersearch", htmlentities_array($usersearch)), "\n"; echo " ", form_input_hidden("main_page", htmlentities_array($main_page)), "\n"; echo " ", form_input_hidden("search_page", htmlentities_array($search_page)), "\n"; echo " ", form_input_hidden("ret", htmlentities_array($ret)), "\n"; echo " <table cellpadding=\"0\" cellspacing=\"0\" width=\"800\">\n"; echo " <tr>\n"; echo " <td align=\"left\" class=\"posthead\">\n"; echo " <table class=\"box\" width=\"100%\">\n";
echo " <tr>\n"; echo " <td align=\"center\">", form_submit("remove", gettext("Remove Selected Users")), "</td>\n"; echo " </tr>\n"; } else { echo " <tr>\n"; echo " <td align=\"left\"> </td>\n"; echo " </tr>\n"; echo " <tr>\n"; echo " <td align=\"center\">", form_submit("back", gettext("Back")), "</td>\n"; echo " </tr>\n"; } echo " </table>\n"; echo "</form>\n"; echo "<br />\n"; if (isset($user_search) && strlen(trim($user_search)) > 0) { $user_search_array = admin_user_search($user_search, 'LOGON', 'ASC', 0, $search_page); if (sizeof($user_search_array['user_array']) < 1) { html_display_warning_msg(gettext("Search Returned No Results"), '500', 'center'); } echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"admin_forum_access.php\" target=\"_self\">\n"; echo " ", form_input_hidden('webtag', htmlentities_array($webtag)), "\n"; echo " ", form_input_hidden('ret', htmlentities_array($ret)), "\n"; echo " ", form_input_hidden("user_search", htmlentities_array($user_search)), "\n"; echo " ", form_input_hidden("main_page", htmlentities_array($main_page)), "\n"; echo " <table cellpadding=\"0\" cellspacing=\"0\" width=\"500\">\n"; echo " <tr>\n"; echo " <td align=\"left\" class=\"posthead\">\n"; echo " <table class=\"box\" width=\"100%\">\n"; echo " <tr>\n"; echo " <td align=\"left\" class=\"posthead\">\n"; echo " <table class=\"posthead\" width=\"100%\">\n";
function get_admin_user_search_results($search, $offset, $limit, $sortby, $sortdir) { // In admin search, the search string is interpreted as either a // name search or an email search depending on its contents $queries = array(); $constraints = array(); if (!empty($search->query)) { list($words, $fullnames) = parse_name_query($search->query); foreach ($words as $word) { if (strpos($word, '@') !== false) { $queries[] = array('field' => 'email', 'type' => 'contains', 'string' => $word); } else { $queries[] = array('field' => 'firstname', 'type' => 'contains', 'string' => $word); $queries[] = array('field' => 'lastname', 'type' => 'contains', 'string' => $word); $queries[] = array('field' => 'username', 'type' => 'contains', 'string' => $word); } } foreach ($fullnames as $n) { $constraints[] = array('field' => 'firstname', 'type' => 'contains', 'string' => $n[0]); $constraints[] = array('field' => 'lastname', 'type' => 'contains', 'string' => $n[1]); } } if (!empty($search->f)) { $constraints[] = array('field' => 'firstname', 'type' => 'starts', 'string' => $search->f); } if (!empty($search->l)) { $constraints[] = array('field' => 'lastname', 'type' => 'starts', 'string' => $search->l); } // Filter by viewable institutions: global $USER; if (!$USER->get('admin')) { if (empty($search->institution) && empty($search->institution_requested)) { $search->institution_requested = 'all'; } $allowed = $USER->get('admininstitutions'); foreach (array('institution', 'institution_requested') as $p) { if (!empty($search->{$p})) { if ($search->{$p} == 'all' || !isset($allowed[$search->{$p}])) { $constraints[] = array('field' => $p, 'type' => 'in', 'string' => $allowed); } else { $constraints[] = array('field' => $p, 'type' => 'equals', 'string' => $search->{$p}); } } } } else { if (!empty($search->institution) && $search->institution != 'all') { $constraints[] = array('field' => 'institution', 'type' => 'equals', 'string' => $search->institution); } } $results = admin_user_search($queries, $constraints, $offset, $limit, $sortby, $sortdir); if ($results['count']) { foreach ($results['data'] as &$result) { $result['name'] = display_name($result); if (!empty($result['institutions'])) { $result['institutions'] = array_combine($result['institutions'], $result['institutions']); } } } return $results; }