#!/usr/local/cpanel/3rdparty/bin/perl # gniza cPanel Plugin — Activity Logs # Shows user-initiated restore actions and their results use strict; use warnings; BEGIN { my $base; if ($0 =~ m{^(.*)/}) { $base = $1; } else { $base = '.'; } unshift @INC, "$base/lib"; } use Cpanel::LiveAPI (); use Cpanel::AdminBin::Call (); use Cpanel::Form (); use GnizaCPanel::UI; my $cpanel = Cpanel::LiveAPI->new(); END { $cpanel->end() if $cpanel } my $form = Cpanel::Form::parseform(); my $entry = $form->{'entry'} // ''; if ($entry ne '') { show_entry($entry); } else { show_list(); } exit; # ── List View ──────────────────────────────────────────────── sub show_list { print "Content-Type: text/html\r\n\r\n"; print $cpanel->header(''); print GnizaCPanel::UI::page_header('GNIZA Activity Log'); print GnizaCPanel::UI::render_nav('logs.live.cgi'); print GnizaCPanel::UI::render_flash(); my $raw = eval { Cpanel::AdminBin::Call::call('Gniza', 'Restore', 'LIST_LOGS') } // ''; if ($raw =~ /^ERROR: (.*)/) { print qq{
| Date (UTC) | Action | Details | Status | |
|---|---|---|---|---|
| $esc_date | \n}; print qq{$esc_action | \n}; print qq{$esc_details | \n}; print qq{$esc_status | \n}; print qq{\n}; print qq{ |
};
for my $line (@output_lines) {
my $esc = GnizaCPanel::UI::esc($line);
if ($line =~ /\[ERROR\]/) {
print qq{$esc\n};
} elsif ($line =~ /\[WARN\]/) {
print qq{$esc\n};
} elsif ($line =~ /\[DEBUG\]/) {
print qq{$esc\n};
} else {
print "$esc\n";
}
}
print qq{\n};
} else {
print qq{