diff --git a/core/user_logs/user_logs.php b/core/user_logs/user_logs.php index d9c8d9382e..b8655b1c80 100644 --- a/core/user_logs/user_logs.php +++ b/core/user_logs/user_logs.php @@ -62,10 +62,12 @@ } //prepare the array - foreach ($user_logs as $row) { - $array['user_logs'][$x]['checked'] = $row['checked']; - $array['user_logs'][$x]['user_log_uuid'] = $row['user_log_uuid']; - $x++; + if (!empty($user_logs)) { + foreach ($user_logs as $row) { + $array['user_logs'][$x]['checked'] = $row['checked']; + $array['user_logs'][$x]['user_log_uuid'] = $row['user_log_uuid']; + $x++; + } } //prepare the database object @@ -74,10 +76,8 @@ $database->app_uuid = '582a13cf-7d75-4ea3-b2d9-60914352d76e'; //send the array to the database class - if ($action == 'delete') { - if (permission_exists('user_log_delete')) { - $database->delete($array); - } + if (!empty($action) && $action == 'delete' && permission_exists('user_log_delete')) { + $database->delete($array); } //redirect the user @@ -89,24 +89,32 @@ $order_by = $_GET["order_by"] ?? null; $order = $_GET["order"] ?? null; -//add the search - if (isset($_GET["search"])) { +//define the variables + $search = ''; + $show = ''; + +//add the search variable + if (!empty($_GET["search"])) { $search = strtolower($_GET["search"]); - $search = htmlspecialchars($search); + } + +//add the show variable + if (!empty($_GET["show"])) { + $show = $_GET["show"]; } //get the count $sql = "select count(user_log_uuid) "; $sql .= "from v_user_logs "; - if (permission_exists('user_log_all') && !empty($_GET['show']) && $_GET['show'] == 'all') { + if (permission_exists('user_log_all') && $show == 'all') { $sql .= "where true "; } else { $sql .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; } - if (isset($search)) { - $sql .= "and ("; + if (!empty($search)) { + $sql .= "and ( "; $sql .= " lower(username) like :search "; $sql .= " or lower(type) like :search "; $sql .= " or lower(result) like :search "; @@ -121,8 +129,8 @@ //prepare to page the results $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; - $param = !empty($search) ? "search=".$search : null; - $param .= !empty($_GET['show']) && $_GET['show'] == 'all' && permission_exists('user_log_all') ? "&show=all" : null; + $param = !empty($search) ? "&search=".$search : null; + $param .= (!empty($_GET['page']) && $show == 'all' && permission_exists('user_log_all')) ? "&show=all" : null; $page = !empty($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 0; list($paging_controls, $rows_per_page) = paging($num_rows, $param, $rows_per_page); list($paging_controls_mini, $rows_per_page) = paging($num_rows, $param, $rows_per_page, true); @@ -139,25 +147,26 @@ //get the list $sql = "select "; - $sql .= "domain_uuid, "; $sql .= "user_log_uuid, "; - $sql .= "timestamp, "; - $sql .= "to_char(timezone(:time_zone, timestamp), 'DD Mon YYYY') as date_formatted, \n"; - $sql .= "to_char(timezone(:time_zone, timestamp), 'HH12:MI:SS am') as time_formatted, \n"; + $sql .= "u.domain_uuid, "; + $sql .= "d.domain_name, "; + $sql .= "to_char(timezone(:time_zone, timestamp), 'DD Mon YYYY') as date_formatted, "; + $sql .= "to_char(timezone(:time_zone, timestamp), 'HH12:MI:SS am') as time_formatted, "; + $sql .= "user_uuid, "; $sql .= "username, "; $sql .= "type, "; $sql .= "result, "; $sql .= "remote_address, "; $sql .= "user_agent "; - $sql .= "from v_user_logs "; - if (permission_exists('user_log_all') && !empty($_GET['show']) && $_GET['show'] == 'all') { + $sql .= "from v_user_logs as u, v_domains as d "; + if (permission_exists('user_log_all') && $show == 'all') { $sql .= "where true "; } else { - $sql .= "where domain_uuid = :domain_uuid "; + $sql .= "where u.domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; } - if (isset($search)) { + if (!empty($search)) { $sql .= "and ( "; $sql .= " lower(username) like :search "; $sql .= " or lower(type) like :search "; @@ -167,10 +176,11 @@ $sql .= ") "; $parameters['search'] = '%'.$search.'%'; } + $sql .= "and u.domain_uuid = d.domain_uuid "; $sql .= order_by($order_by, $order, 'timestamp', 'desc'); $sql .= limit_offset($rows_per_page, $offset); $database = new database; - $user_logs = $database->select($sql, $parameters, 'all'); + $user_logs = $database->select($sql, $parameters ?? null, 'all'); unset($sql, $parameters); //create token @@ -190,16 +200,15 @@ } echo "