<% 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_callback=> 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_callback'=> sub { my $svc_cert = shift; if ( $svc_cert->csr ) { my $out = ''; my %hash = $svc_cert->check_csr; $out .= include('/elements/table-grid.html'). #''. ''; my $col = $svc_cert->subj_col; foreach my $key (keys %hash) { $out .= "". ""; } $out .= '
'. 'Requested by
". $labels{$col->{$key}}. "". $hash{$key}. "
'; $out .= '
'. $svc_cert->csr.
          '
'; $out; } elsif ( $svc_cert->common_name ) { my $svcnum = $svc_cert->svcnum; qq(Generate); } else { ''; } }, }, { 'field'=>'certificate', 'value_callback'=> 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'). #''. ''; my $col = $svc_cert->subj_col; my $subj = $hash{$w}; foreach my $key (keys %$col) { #( keys %$subj ) { $out .= "". ""; } $out .= '
'. $w{$w}. '
". $labels{$col->{$key}}. "". $subj->{$key}. "
'; } $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_callback'=> 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'). #''. ''; my $col = $svc_cert->subj_col; my $subj = $hash{$w}; foreach my $key (keys %$col) { #( keys %$subj ) { $out .= "". ""; } $out .= '
'. $w{$w}. '
". $labels{$col->{$key}}. "". $subj->{$key}. "
'; } $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)'.
        '
'; } }, }, );