'uer.`Timestamp`', 'outcome' => 'uer.`Outcome`', 'handled_timestamp' => 'uer.`HandledTimestamp`'); $Where = []; $Joins = []; // Default orderings $OrderBy = "uer.`Timestamp`"; $OrderWay = "DESC"; // Build query for different views // TODO: Work with encrypted values if (!isset($_GET['view'])) { $_GET['view'] = 'main'; } switch ($_GET['view']) { case 'perfect': $Where[] = "um.`Email` = uer.`Email`"; $Joins[] = "JOIN `users_main` um ON um.`ID` = uer.`UserID`"; $Where[] = "uer.`IP` = (SELECT `IP` FROM `users_history_ips` uhi1 WHERE uhi1.`StartTime` = (SELECT MAX(`StartTime`) FROM `users_history_ips` uhi2 WHERE uhi2.`UserID` = uer.`UserID` ORDER BY `StartTime` DESC LIMIT 1))"; $Where[] = "(SELECT 1 FROM `users_history_ips` uhi WHERE uhi.`IP` = uer.`IP` AND uhi.`UserID` != uer.`UserID`) IS NULL"; $Where[] = "ui.`BanReason` = '3'"; break; case 'minus_ip': $Where[] = "um.`Email` = uer.`Email`"; $Joins[] = "JOIN `users_main` um ON um.`ID` = uer.`UserID`"; $Where[] = "ui.`BanReason` = '3'"; break; case 'invalid_email': $Joins[] = "JOIN `users_main` um ON um.`ID` = uer.`UserID`"; $Where[] = "um.`Email` != uer.`Email`"; break; case 'ip_overlap': $Joins[] = "JOIN `users_history_ips` uhi ON uhi.`IP` = uer.`IP` AND uhi.`UserID` != uer.`UserID`"; break; case 'manual_disable': $Where[] = "ui.`BanReason` != '3'"; break; default: $Joins[] = ''; break; } // End views // Build query further based on search if (isset($_GET['search'])) { $Username = db_string($_GET['username']); $IP = db_string($_GET['ip']); $SubmittedBetween = db_string($_GET['submitted_between']); $SubmittedTimestamp1 = db_string($_GET['submitted_timestamp1']); $SubmittedTimestamp2 = db_string($_GET['submitted_timestamp2']); $HandledUsername = db_string($_GET['handled_username']); $HandledBetween = db_string($_GET['handled_between']); $HandledTimestamp1 = db_string($_GET['handled_timestamp1']); $HandledTimestamp2 = db_string($_GET['handled_timestamp2']); $OutcomeSearch = (int) $_GET['outcome_search']; $Checked = (isset($_GET['show_checked'])); if (array_key_exists($_GET['order'], $OrderBys)) { $OrderBy = $OrderBys[$_GET['order']]; } if ($_GET['way'] === 'asc' || $_GET['way'] === 'desc') { $OrderWay = $_GET['way']; } if (!empty($Username)) { $Joins[] = "JOIN `users_main` um1 ON um1.`ID` = uer.`UserID`"; } if (!empty($HandledUsername)) { $Joins[] = "JOIN `users_main` um2 ON um2.`ID` = uer.`CheckedBy`"; } $Where = array_merge($Where, AutoEnable::build_search_query( $Username, $IP, $SubmittedBetween, $SubmittedTimestamp1, $SubmittedTimestamp2, $HandledUsername, $HandledBetween, $HandledTimestamp1, $HandledTimestamp2, $OutcomeSearch, $Checked )); } // End search queries $ShowChecked = (isset($Checked) && $Checked) || !empty($HandledUsername) || !empty($HandledTimestamp1) || !empty($OutcomeSearch); if (!$ShowChecked || count($Where) === 0) { // If no search is entered, add this to the query to only show unchecked requests $Where[] = '`Outcome` IS NULL'; } $QueryID = $DB->query(" SELECT SQL_CALC_FOUND_ROWS uer.`ID`, uer.`UserID`, uer.`Email`, uer.`IP`, uer.`UserAgent`, uer.`Timestamp`, ui.`BanReason`, uer.`CheckedBy`, uer.`HandledTimestamp`, uer.`Outcome` FROM `users_enable_requests` AS uer JOIN `users_info` ui ON ui.`UserID` = uer.`UserID` ".implode(' ', $Joins)." WHERE ".implode(' AND ', $Where)." ORDER BY $OrderBy $OrderWay LIMIT $Limit "); $DB->query("SELECT FOUND_ROWS()"); list($NumResults) = $DB->next_record(); $DB->set_query_id($QueryID); ?>

Auto-Enable Requests

Main Perfect Perfect Minus IP Invalid Email IP Overlap Manual Disable Search Scores
query(" SELECT COUNT(`CheckedBy`), `CheckedBy` FROM `users_enable_requests` WHERE `CheckedBy` IS NOT NULL GROUP BY `CheckedBy` ORDER BY COUNT(`CheckedBy`) DESC LIMIT 50 "); while (list($Checked, $UserID) = $DB->next_record()) { ?> set_query_id($QueryID); ?>
>
Username
IP Address
Submitted Timestamp   />
Handled By Username
Handled Timestamp   />
Outcome
Include Checked />
Order By  
0) { ?> next_record()) { ?>
Username Email Address IP Address User Agent Age Ban Reason Comment Submit Outcome
Inactivity' : 'Other'?> Unresolve

No new pending auto enable requests