1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
<% 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 ) {
'<FONT COLOR="#33ff33">Verification OK</FONT>';
} elsif ( $svc_cert->privatekey ) {
'<FONT COLOR="#ff0000">Verification error</FONT>';
} else {
'<I>(none)</I>';
}
},
},
qw( common_name organization organization_unit city state country cert_contact
),
{ 'field'=>'csr',
'value'=> sub {
my $svc_cert = shift;
if ( $svc_cert->csr ) { #display the subject etc?
'<FONT STYLE="font-family:monospace"><PRE>'. $svc_cert->csr.
'</PRE></FONT>';
} elsif ( $svc_cert->common_name ) {
my $svcnum = $svc_cert->svcnum;
qq(<A HREF="${p}misc/svc_cert-generate.html?action=generate_csr;svcnum=$svcnum">Generate</A>);
} else {
'';
}
},
},
{ 'field'=>'certificate',
'value'=> sub {
my $svc_cert = shift;
if ( $svc_cert->certificate ) {
my %hash = $svc_cert->check_certificate;
my $out = '<TABLE>'; #XXX better formatting
foreach my $key ( keys %hash ) {
$out .= "<TR><TD>$key</TD><TD>$hash{$key}</TD></TR>";
}
$out .= '</TABLE>';
$out .= '<FONT STYLE="font-family:monospace"><PRE>'.
$svc_cert->certificate.
'</PRE></FONT>';
$out;
} elsif ( $svc_cert->csr ) {
my $svcnum = $svc_cert->svcnum;
qq(<A HREF="${p}misc/svc_cert-generate.html?action=generate_selfsigned;svcnum=$svcnum">Generate self-signed</A>);
} else {
'';
}
},
},
);
</%init>
|