No authentication entries found!'); } else { $string = generate_box_open($vars['header']); // Entries have been returned. Print the table. $string .= '' . PHP_EOL; $cols = array( //'NONE' => NULL, 'date' => array('Date', 'style="width: 150px;"'), 'user' => 'User', 'from' => 'From', 'ua' => array('User-Agent', 'style="width: 200px;"'), 'NONE' => 'Action', ); if ($vars['page'] == 'preferences') { unset($cols['user']); } $string .= get_table_header($cols); //, $vars); // Currently sorting is not available $string .= '' . PHP_EOL; foreach ($authlog['entries'] as $entry) { if (strlen($entry['user_agent']) > 1) { $entry['detect_browser'] = detect_browser($entry['user_agent']); //r($entry['detect_browser']); $entry['user_agent'] = ' ' . $entry['detect_browser']['browser_full']; if ($entry['detect_browser']['platform']) { $entry['user_agent'] .= ' ('.$entry['detect_browser']['platform'].')'; } } if (strstr(strtolower($entry['result']), 'fail', true)) { $class = " class=\"error\""; } else { $class = ""; } $string .= ' '; if (isset($cols['user'])) { $string .= ' '; } $string .= ' ' . PHP_EOL; } $string .= ' ' . PHP_EOL; $string .= '
'.$entry['datetime'].''.escape_html($entry['user']).''. ($_SESSION['userlevel'] > 5 ? generate_popup_link('ip', $entry['address']) : preg_replace('/^\d+/', '*', $entry['address'])) . ' '.$entry['user_agent'].' '.$entry['result'].'
'; $string .= generate_box_close(); // Add pagination header if ($authlog['pagination_html']) { $string = $authlog['pagination_html'] . $string . $authlog['pagination_html']; } // Print authlog echo $string; } } // DOCME needs phpdoc block function get_authlog_array($vars) { $array = array(); // Short authlog? (no pagination, small out) $array['short'] = (isset($vars['short']) && $vars['short']); if ($array['short']) { // For short, always limit to last 10 entries $start = 0; $pagesize = 10; } else { // With pagination? (display page numbers in header) $array['pagination'] = (isset($vars['pagination']) && $vars['pagination']); pagination($vars, 0, TRUE); // Get default pagesize/pageno $array['pageno'] = $vars['pageno']; $array['pagesize'] = $vars['pagesize']; $start = $array['pagesize'] * $array['pageno'] - $array['pagesize']; $pagesize = $array['pagesize']; } $query = " FROM `authlog`" . generate_authlog_where($vars); $query_count = 'SELECT COUNT(`id`) '.$query; $query_updated = 'SELECT MAX(`datetime`) '.$query; $where = $query = 'SELECT * '.$query; $query .= ' ORDER BY `datetime` DESC '; $query .= "LIMIT $start,$pagesize"; // Query authlog $array['entries'] = dbFetchRows($query, $param); // Query authlog count if ($array['pagination'] && !$array['short']) { $array['count'] = dbFetchCell($query_count, $param); $array['pagination_html'] = pagination($vars, $array['count']); } else { $array['count'] = safe_count($array['entries']); } // Query for last timestamp $array['updated'] = dbFetchCell($query_updated, $param); return $array; } function generate_authlog_where($vars) { $sql = ''; // Build query foreach ($vars as $var => $value) { switch ($var) { case "user_id": if ($value == '') { continue 2; } $value = auth_username_by_id($value); //break; case "user": case "username": if ($value == '') { continue 2; } $sql .= generate_query_values($value, 'user'); break; case "address": case "ip": if ($value == '') { continue 2; } $sql .= generate_query_values($value, 'address', '%LIKE%'); break; case "useragent": case "user_agent": $sql .= generate_query_values($value, 'user_agent', '%LIKE%'); break; case "result": //case "action": $sql .= generate_query_values($value, 'result', 'LIKE%'); break; } } if (strlen($sql)) { $sql = ' WHERE 1' . $sql; } else if ($_SESSION['userlevel'] != 10) { // Complete hide for non-priveleged users $sql = ' WHERE 0'; } return $sql; } // EOF