示例#1
0
                            $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');
                } else {
                    html_display_error_msg(gettext("No user accounts matching filter"), '86%', 'center');
示例#2
0
function admin_user_get_all($sort_by = 'LAST_VISIT', $sort_dir = 'ASC', $filter = ADMIN_USER_FILTER_NONE, $page = 1)
{
    if (!($db = db::get())) {
        return false;
    }
    $sort_by_array = array('LOGON' => 'USER.LOGON', 'LAST_VISIT' => 'USER_FORUM.LAST_VISIT', 'REGISTERED' => 'USER.REGISTERED', 'ACTIVE' => 'SESSIONS.ID');
    if (!in_array($sort_dir, array('ASC', 'DESC'))) {
        $sort_dir = 'ASC';
    }
    if (!is_numeric($page) || $page < 1) {
        $page = 1;
    }
    if (!is_numeric($filter)) {
        $filter = ADMIN_USER_FILTER_NONE;
    }
    $offset = calculate_page_offset($page, 10);
    if (!($forum_fid = get_forum_fid())) {
        $forum_fid = 0;
    }
    if (in_array($sort_by, array_keys($sort_by_array))) {
        $sort_by = $sort_by_array[$sort_by];
    } else {
        $sort_by = 'USER_FORUM.LAST_VISIT';
    }
    $session_gc_maxlifetime = ini_get('session.gc_maxlifetime');
    $session_cutoff_datetime = date(MYSQL_DATETIME, time() - $session_gc_maxlifetime);
    $user_get_all_array = array();
    $up_banned = USER_PERM_BANNED;
    switch ($filter) {
        case ADMIN_USER_FILTER_ONLINE:
            $user_fetch_sql = "WHERE SESSIONS.ID IS NOT NULL";
            break;
        case ADMIN_USER_FILTER_OFFLINE:
            $user_fetch_sql = "WHERE SESSIONS.ID IS NULL";
            break;
        case ADMIN_USER_FILTER_APPROVAL:
            $user_fetch_sql = "WHERE USER.APPROVED IS NULL";
            break;
        case ADMIN_USER_FILTER_BANNED:
            $user_fetch_sql = "WHERE PERMS.PERM & {$up_banned} > 0";
            break;
        default:
            $user_fetch_sql = "";
            break;
    }
    $sql = "SELECT SQL_CALC_FOUND_ROWS USER.UID, USER.LOGON, USER.NICKNAME, SESSIONS.ID, ";
    $sql .= "SESSIONS.REFERER, UNIX_TIMESTAMP(USER.REGISTERED) AS REGISTERED, ";
    $sql .= "UNIX_TIMESTAMP(USER_FORUM.LAST_VISIT) AS LAST_VISIT ";
    $sql .= "FROM USER LEFT JOIN SESSIONS ON (SESSIONS.UID = USER.UID ";
    $sql .= "AND SESSIONS.TIME >= CAST('{$session_cutoff_datetime}' AS DATETIME)) ";
    $sql .= "LEFT JOIN USER_FORUM USER_FORUM ON (USER_FORUM.UID = USER.UID ";
    $sql .= "AND USER_FORUM.FID = {$forum_fid}) LEFT JOIN (SELECT GROUP_USERS.UID, ";
    $sql .= "GROUP_PERMS.FORUM, GROUP_PERMS.FID, BIT_OR(GROUP_PERMS.PERM) AS PERM ";
    $sql .= "FROM GROUP_USERS INNER JOIN GROUPS ON (GROUPS.GID = GROUP_USERS.GID) ";
    $sql .= "INNER JOIN GROUP_PERMS ON (GROUP_PERMS.GID = GROUPS.GID) ";
    $sql .= "WHERE GROUP_PERMS.FORUM IN (0, {$forum_fid}) AND GROUP_PERMS.FID = 0 ";
    $sql .= "GROUP BY GROUP_USERS.UID) AS PERMS ON (PERMS.UID = USER_FORUM.UID) ";
    $sql .= "{$user_fetch_sql} GROUP BY USER.UID ORDER BY {$sort_by} {$sort_dir} ";
    $sql .= "LIMIT {$offset}, 10";
    if (!($result = $db->query($sql))) {
        return false;
    }
    $sql = "SELECT FOUND_ROWS() AS ROW_COUNT";
    if (!($result_count = $db->query($sql))) {
        return false;
    }
    list($user_get_all_count) = $result_count->fetch_row();
    if ($result->num_rows == 0 && $user_get_all_count > 0 && $page > 1) {
        return admin_user_get_all($sort_by, $sort_dir, $filter, $page - 1);
    }
    while ($user_data = $result->fetch_assoc()) {
        $user_get_all_array[$user_data['UID']] = $user_data;
    }
    return array('user_count' => $user_get_all_count, 'user_array' => $user_get_all_array);
}