<%args> $page => undef $limit => 5 $start => 1

<% i18nGettext('I18N_OPENXPKI_HTML_MASON_MY_CERTIFICATES_TITLE') %>

<% i18nGettext('I18N_OPENXPKI_HTML_MASON_MY_CERTIFICATES_DESC') %>

% if (scalar @certificates > 0) { % foreach my $cert (@certificates) { % my $color_notbefore = ''; % my $color_notafter = ''; % if ($cert->{STATUS} eq 'NOT_YET_VALID') { % $color_notbefore = q{style="color: #ff0000"}; % } % if ($cert->{STATUS} eq 'NO_LONGER_VALID') { % $color_notafter = q{style="color: #ff0000"}; % } % } % } % else {

<% i18nGettext('I18N_OPENXPKI_HTML_MASON_MY_CERTIFICATES_NO_CERTIFICATES') %>

% }
<% i18nGettext('I18N_OPENXPKI_CERT_SERIAL') %> <% i18nGettext('I18N_OPENXPKI_HTML_COMMON_NAME') %> <% i18nGettext('I18N_OPENXPKI_CERT_NOTBEFORE') %> <% i18nGettext('I18N_OPENXPKI_CERT_NOTAFTER') %> <% i18nGettext('I18N_OPENXPKI_CERT_STATE') %>
<% $cert->{CERTIFICATE_SERIAL} %> <& /lib/html/a.mhtml, target => 'cert_info.html', label => $cert->{CN}, params => [ ['identifier', $cert->{IDENTIFIER} ], ], &> ><% $cert->{NOTBEFORE} %> ><% $cert->{NOTAFTER} %> <% i18nGettext($state_map->{ $cert->{STATUS} }) %>
<%init> my $c_msg = $context->{client}->send_receive_command_msg( 'count_my_certificates', { }, ); my $count = $c_msg->{PARAMS}; my $pageInfo = $m->comp('/lib/paging.mhtml', totalEntries => $count, entriesPerPage => $limit, page => $page, start => $start, url => 'certs_requested_by_user.html', ); my $list_start = 0; if ($pageInfo->first > 0) { $list_start = $pageInfo->first -1; } my $msg = $context->{client}->send_receive_command_msg( 'list_my_certificates', { START => $list_start, LIMIT => $limit, } ); # TODO - error handling my @certificates = @{ $msg->{PARAMS} }; my $now = time(); foreach my $cert (@certificates) { # set status based on current time if ($now < $cert->{NOTBEFORE}) { $cert->{STATUS} = 'NOT_YET_VALID'; } if ($now > $cert->{NOTAFTER}) { $cert->{STATUS} = 'NO_LONGER_VALID'; } # beautify notbefore/notafter date my $dt = DateTime->from_epoch(epoch => $cert->{NOTAFTER}); $cert->{NOTAFTER} = OpenXPKI::DateTime::convert_date({ DATE => $dt, OUTFORMAT => 'printable', }) . ' UTC'; $dt = DateTime->from_epoch(epoch => $cert->{NOTBEFORE}); $cert->{NOTBEFORE} = OpenXPKI::DateTime::convert_date({ DATE => $dt, OUTFORMAT => 'printable', }) . ' UTC'; my $cn = ''; my %dn_hash = OpenXPKI::DN->new($cert->{SUBJECT})->get_hashed_content(); $cn = $dn_hash{'CN'}->[0]; $cert->{CN} = $cn; } my $state_map = { 'ISSUED' => 'I18N_OPENXPKI_CERT_VALID', 'NOT_YET_VALID' => 'I18N_OPENXPKI_CERT_NOT_YET_VALID', 'NO_LONGER_VALID' => 'I18N_OPENXPKI_CERT_EXPIRED', 'REVOKED' => 'I18N_OPENXPKI_CERT_REVOKED', 'SUSPENDED' => 'I18N_OPENXPKI_CERT_SUSPENDED', 'CRL_ISSUANCE_PENDING' => 'I18N_OPENXPKI_CRL_ISSUANCE_PENDING', }; <%once> use OpenXPKI::DateTime; use DateTime;