Example #1
0
/**
 * 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);
}