/** * List the last-logins for all user accounts in the site. * * This page will contains information of all the logins of the registered users. * * @return string Last-logings for all user accounts. */ function sucuriscan_lastlogins_all() { $max_per_page = SUCURISCAN_LASTLOGINS_USERSLIMIT; $page_number = SucuriScanTemplate::get_page_number(); $offset = $max_per_page * $page_number - $max_per_page; $template_variables = array('UserList' => '', 'UserList.Limit' => $max_per_page, 'UserList.Total' => 0, 'UserList.Pagination' => '', 'UserList.PaginationVisibility' => 'hidden', 'UserList.NoItemsVisibility' => 'visible'); if (!sucuriscan_lastlogins_datastore_is_writable()) { SucuriScanInterface::error('Last-logins datastore file is not writable: <code>' . sucuriscan_lastlogins_datastore_filepath() . '</code>'); } $counter = 0; $last_logins = sucuriscan_get_logins($max_per_page, $offset); $template_variables['UserList.Total'] = $last_logins['total']; if ($last_logins['total'] > $max_per_page) { $template_variables['UserList.PaginationVisibility'] = 'visible'; } if ($last_logins['total'] > 0) { $template_variables['UserList.NoItemsVisibility'] = 'hidden'; } foreach ($last_logins['entries'] as $user) { $counter += 1; $css_class = $counter % 2 == 0 ? 'alternate' : ''; $user_dataset = array('UserList.Number' => $user->line_num, 'UserList.UserId' => $user->user_id, 'UserList.Username' => '<em>Unknown</em>', 'UserList.Displayname' => '', 'UserList.Email' => '', 'UserList.Registered' => '', 'UserList.RemoteAddr' => SucuriScan::escape($user->user_remoteaddr), 'UserList.Hostname' => SucuriScan::escape($user->user_hostname), 'UserList.Datetime' => SucuriScan::escape($user->user_lastlogin), 'UserList.TimeAgo' => SucuriScan::time_ago($user->user_lastlogin), 'UserList.UserURL' => admin_url('user-edit.php?user_id=' . $user->user_id), 'UserList.CssClass' => $css_class); if ($user->user_exists) { $user_dataset['UserList.Username'] = SucuriScan::escape($user->user_login); $user_dataset['UserList.Displayname'] = SucuriScan::escape($user->display_name); $user_dataset['UserList.Email'] = SucuriScan::escape($user->user_email); $user_dataset['UserList.Registered'] = SucuriScan::escape($user->user_registered); } $template_variables['UserList'] .= SucuriScanTemplate::get_snippet('lastlogins-all', $user_dataset); } // Generate the pagination for the list. $template_variables['UserList.Pagination'] = SucuriScanTemplate::get_pagination('%%SUCURI.URL.Lastlogins%%', $last_logins['total'], $max_per_page); return SucuriScanTemplate::get_section('lastlogins-all', $template_variables); }