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