28a269bcce2baee057eac16dc0c1132c93b10715
[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         '<PRE><FONT STYLE="font-family:monospace">'. "\n". $svc_cert->csr.
38         '</FONT></PRE>';
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
54         tie my %w, 'Tie::IxHash',
55           'subject' => 'Issued to',
56           'issuer'  => 'Issued by',
57         ;
58
59         my $out = '<TABLE><TR><TD>';
60
61         foreach my $w ( keys %w ) {
62
63           $out .= include('/elements/table-grid.html'). #'<TABLE>'.
64                   '<TR><TH COLSPAN=2 BGCOLOR="#cccccc" ALIGN="center">'.
65                   $w{$w}. '</TH></TR>';
66
67           my $col = $svc_cert->subj_col;
68
69           my $subj = $hash{$w};
70           foreach my $key (keys %$col) { #( keys %$subj ) {
71             $out .= "<TR><TD>". $labels{$col->{$key}}.  "</TD>".
72                         "<TD>". $subj->{$key}. "</TD></TR>";
73           }
74
75           $out .= '</TABLE></TD><TD>';
76         }
77         $out .= '</TD></TR></TABLE>';
78
79         $out .= '<TABLE>'.
80                 '<TR><TH ALIGN="right">Serial number</TH>'.
81                     "<TD>$hash{serial}</TD></TR>".
82                 '<TR><TH ALIGN="right">Valid</TH>'.
83                     "<TD>$hash{notBefore} - $hash{notAfter}</TD></TR>".
84                 '</TABLE>';
85
86         if ( $hash{'selfsigned'} ) {
87           my $svcnum = $svc_cert->svcnum;
88           $out .= qq(<BR> <A HREF="${p}misc/svc_cert-generate.html?action=generate_selfsigned;svcnum=$svcnum">Re-generate self-signed</A>).
89                   ' &nbsp; '.
90                   include('/elements/popup_link.html', {
91                     'action'      => $p."edit/svc_cert/import_certificate.html".
92                                      "?svcnum=$svcnum",
93                     'label'       => 'Import issued certificate', #link
94                     'actionlabel' => 'Import issued certificate', #title
95                     #opt
96                     'width'       => '544',
97                     'height'      => '368',
98                     #'color'       => '#ff0000',
99                   }).
100                   '<BR>';
101         }
102
103         $out .= '<PRE><FONT STYLE="font-family:monospace">'.
104                 $svc_cert->certificate.
105                 '</FONT><PRE>';
106
107         $out;
108       } elsif ( $svc_cert->csr ) {
109         my $svcnum = $svc_cert->svcnum;
110         qq(<A HREF="${p}misc/svc_cert-generate.html?action=generate_selfsigned;svcnum=$svcnum">Generate self-signed</A>);
111       } else {
112         '';
113       }
114     },
115   },
116 );
117
118 </%init>