Example #1
0
                        }
                        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\">&nbsp;</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\">&nbsp;</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;
}