% include('elements/svc_Common.html',
'table' => 'svc_cert',
'labels' => \%labels,
#'html_foot' => $html_foot,
'fields' => \@fields,
)
%>
<%init>
my $fields = FS::svc_cert->table_info->{'fields'};
my %labels = map { $_ => ( ref($fields->{$_})
? $fields->{$_}{'label'}
: $fields->{$_}
);
}
keys %$fields;
my @fields = (
{ field=>'privatekey',
value=> sub {
my $svc_cert = shift;
if ( $svc_cert->privatekey && $svc_cert->check_privatekey ) {
'Verification OK';
} elsif ( $svc_cert->privatekey ) {
'Verification error';
} else {
'(none)';
}
},
},
qw( common_name organization organization_unit city state country cert_contact
),
{ 'field'=>'csr',
'value'=> sub {
my $svc_cert = shift;
if ( $svc_cert->csr ) {
my $out = '';
my %hash = $svc_cert->check_csr;
$out .= include('/elements/table-grid.html'). #'
'.
''.
'Requested by |
';
my $col = $svc_cert->subj_col;
foreach my $key (keys %hash) {
$out .= "". $labels{$col->{$key}}. " | ".
"". $hash{$key}. " |
";
}
$out .= '
';
$out .=
''. $svc_cert->csr.
'
';
$out;
} elsif ( $svc_cert->common_name ) {
my $svcnum = $svc_cert->svcnum;
qq(Generate);
} else {
'';
}
},
},
{ 'field'=>'certificate',
'value'=> sub {
my $svc_cert = shift;
if ( $svc_cert->certificate ) {
my %hash = $svc_cert->check_certificate;
tie my %w, 'Tie::IxHash',
'subject' => 'Issued to',
'issuer' => 'Issued by',
;
my $out = '';
foreach my $w ( keys %w ) {
$out .= include('/elements/table-grid.html'). #''.
''.
$w{$w}. ' | ';
my $col = $svc_cert->subj_col;
my $subj = $hash{$w};
foreach my $key (keys %$col) { #( keys %$subj ) {
$out .= "". $labels{$col->{$key}}. " | ".
"". $subj->{$key}. " | ";
}
$out .= ' | ';
}
$out .= ' |
';
$out .= ''.
'Serial number | '.
"$hash{serial} |
".
'Valid | '.
"$hash{notBefore} - $hash{notAfter} |
".
'
';
my $svcnum = $svc_cert->svcnum;
if ( $hash{'selfsigned'} ) {
$out .= qq(
Re-generate self-signed).
' '.
include('/elements/popup_link.html', {
'action' => $p."edit/svc_cert/import_certificate.html".
"?svcnum=$svcnum",
'label' => 'Import issued certificate', #link
'actionlabel' => 'Import issued certificate', #title
#opt
'width' => '544',
'height' => '368',
#'color' => '#ff0000',
}).
'
';
}
$out .= ''.
$svc_cert->certificate.
'';
$out;
} elsif ( $svc_cert->csr ) {
my $svcnum = $svc_cert->svcnum;
qq(Generate self-signed);
} else {
'';
}
},
},
{ 'field'=>'cacert',
'value'=> sub {
my $svc_cert = shift;
if ( $svc_cert->cacert ) {
my %hash = $svc_cert->check_cacert;
tie my %w, 'Tie::IxHash',
'subject' => 'Issued to',
'issuer' => 'Issued by',
;
my $out = '
';
foreach my $w ( keys %w ) {
$out .= include('/elements/table-grid.html'). #''.
''.
$w{$w}. ' | ';
my $col = $svc_cert->subj_col;
my $subj = $hash{$w};
foreach my $key (keys %$col) { #( keys %$subj ) {
$out .= "". $labels{$col->{$key}}. " | ".
"". $subj->{$key}. " | ";
}
$out .= ' | ';
}
$out .= ' |
';
$out .= ''.
'Serial number | '.
"$hash{serial} |
".
'Valid | '.
"$hash{notBefore} - $hash{notAfter} |
".
'
';
$out .= ''.
$svc_cert->certificate.
'';
$out;
} else {
my $svcnum = $svc_cert->svcnum;
include('/elements/popup_link.html', {
'action' => $p."edit/svc_cert/import_cacert.html".
"?svcnum=$svcnum",
'label' => 'Import certificate authority chain',#link
'actionlabel' => 'Import certificate authority chain',#title
#opt
'width' => '544',
'height' => '368',
#'color' => '#ff0000',
}). ' (optional)'.
'
';
}
},
},
);
%init>