use PMG::RESTEnvironment;
use PMG::Utils;
+use PMG::Ticket;
use PMG::DBTools;
use PMG::RuleDB;
use PMG::Config;
$data->{date} = strftime("%F", localtime($ref->{time}));
$data->{time} = strftime("%H:%M:%S", localtime($ref->{time}));
- # fixme: $data->{ticket} = Proxmox::Utils::create_ticket ($ref);
$data->{bytes} = $ref->{bytes};
$data->{spamlevel} = $ref->{spamlevel};
$data->{spaminfo} = $ref->{info};
$title .= sprintf("Virus info: %s\n", encode_entities ($ref->{info})) if $ref->{qtype} eq 'V';
$title .= sprintf("File: %s", encode_entities($ref->{file}));
- # fixme: urlencode?
$data->{title} = $title;
+ $data->{ticket} = PMG::Ticket::assemble_quarantine_ticket($ref);
+
return $data;
}
if ($template) {
if (!$extern) {
- # fixme: my $ticket = Proxmox::Utils::create_ticket ($lastref);
- my $ticket = "TEST";
+ my $ticket = PMG::Ticket::assemble_quarantine_ticket($lastref);
$data->{ticket} = $ticket;
$data->{managehref} = "https://$fqdn:$port?ticket=$ticket";
$data->{mailcount} = $mailcount;
$rsa_pub, 'PMGVNC', $ticket, $secret_data, -20, 40, $noerr);
}
+sub assemble_quarantine_ticket {
+ my ($ref) = @_;
+
+ my $rsa_priv = PVE::INotify::read_file('auth_priv_key');
+
+ my $data = "$ref->{cid}:$ref->{rid}";
+
+ my $secret_data = "$ref->{cid}:$ref->{rid}:$ref->{time}:$ref->{ticketid}";
+
+ return PVE::Ticket::assemble_rsa_ticket(
+ $rsa_priv, 'PMGQUAR', $data, $secret_data);
+}
+
+sub verify_quarantine_ticket {
+ my ($ticket, $ref, $lifetime, $noerr) = @_;
+
+ my $rsa_pub = PVE::INotify::read_file('auth_pub_key');
+
+ my $secret_data = "$ref->{cid}:$ref->{rid}:$ref->{time}:$ref->{ticketid}";
+
+ return PVE::Ticket::verify_rsa_ticket(
+ $rsa_pub, 'PMGQUAR', $ticket, $secret_data, -20, $lifetime*60, $noerr);
+}
+
1;