Jack Disu schrieb:
> 
>   hi
>    thanx a lot.......
>    I use openca-0.9.1-RC4 , it works fine.
>    also mail and  renewed request work at both RA and CA
>    with(Without sign and approve)
>    but only csr canot edit at RA afetr saying renew.
>    This is a not so important.
>    Thank you for help.

Fixed in CVS. It was a typo ($datatype instead of $dataType).

Michael
-- 
-------------------------------------------------------------------
Michael Bell                   Email (private): [EMAIL PROTECTED]
Rechenzentrum - Datacenter     Email:  [EMAIL PROTECTED]
Humboldt-University of Berlin  Tel.: +49 (0)30-2093 2482
Unter den Linden 6             Fax:  +49 (0)30-2093 2959
10099 Berlin
Germany                                       http://www.openca.org
## OpenCA - RAServer Command
## (c) 1998-2001 by Massimiliano Pala and OpenCA Group
##
##   File Name: editCSR
##       Brief: Edit Request
## Description: Edit a given Request
##  Parameters: key

my $cmdName = "editCSR";

if ( $cmd !~ /$cmdName/i ) {
        configError( "Wrong Command Usage ($cmd over $cmdName)!" );
        exit 1;
}

## Get the Configuration parameters ...
my ( $ou, $ouList, $def, $op, $opCert, $info, $opStatus, $dnLabel);
my ( $sigStatus, $signer, $signature, $myCN, $myEmail, @myDnInfo, $subject, 
$subjectAltName );
my ( @opCertList, $reqDataTable, @cols, $opCert, $serLink, $lnk, $sigInfo );
my ( %labels, @values, $role );
my ( $reqStatus, $cmdsPanel, $reqDesc );

my $key      = $query->param('key');
my $dataType = $query->param('dataType');
if (not $dataType) {
        $dataType = "PENDING_REQUEST";
}

## Required Configuration Key
my $sheetsDir   = getRequired( 'SheetsDir' );
my $includeDir  = getRequired( 'IncludeDir' );
my $txtDir      = getRequired( 'TextDir' );
my $baseDoc = getRequired('ViewCSRSheet');

configError( "Error, needed dB key!" ) if ( not $key );

$reqStatus = "Waiting for Approval";
$cmdsPanel = "$includeDir/editing_cmds.inc";
$reqDesc   = "$txtDir/pending_desc.txt";

if( not ( $page = $query->getFile( $baseDoc )) ) {
        configError ("Error while loading $baseDoc!" );
};

## Substitute the cmdsPanel, reqStatus and reqDesc
$page = $query->subVar( $page, '@STATUS@', $reqStatus );
$page = $query->subVar( $page, '@REQDESC@', $tools->getFile( "$reqDesc") );
$page = $query->subVar( $page, '@CMDSPANEL@', $tools->getFile("$cmdsPanel") );

my $req = $db->getItem( DATATYPE=>$dataType, KEY=>$key );

configError ("Request not present in DB or the status of the request was changed!" ) 
if ( not $req );

## Get the parsed Request
my $parsed_req  = $req->getParsed();
my $head        = $req->getParsed()->{HEADER};
my $dbKey       = $req->getSerial();

@cols = ( "Variable", "Value" );
$reqDataTable = $query->startTable( COLS=>[ @cols ],
                                        WIDTH=>"100%",
                                        ## BGCOLOR=>"#F1F0F8",
                                        PADDING=>"2",
                                        CELLPADDING=>"4",
                                        TABLE_BGCOLOR=>"#F1F0F8",
                                        TITLE_BGCOLOR=>"#DDCCFF" );

if (  $parsed_req->{DN_HASH}->{CN}[0] ne "" ) {
        $lnk = new CGI({cmd=>"search", dataType=>"CERTIFICATE",
                        name=>"CN", value=>$parsed_req->{DN_HASH}->{CN}[0]} );
        $myCN = $lnk->a({-href=>$lnk->self_url()}, $parsed_req->{DN_HASH}->{CN}[0]);
}

## subject alternative name
if (  defined $req->getParsed()->{HEADER}->{SUBJECT_ALT_NAME} ) {
        $subjectAltName = $req->getParsed()->{HEADER}->{SUBJECT_ALT_NAME};
} elsif (  $parsed_req->{EMAILADDRESS} ne "" ) {
        $subjectAltName = "email:".$parsed_req->{EMAILADDRESS};
} else {
        $subjectAltName = "";
}

## email address
my @emails = [];
if (  defined $req->getParsed()->{HEADER}->{SUBJECT_ALT_NAME} ) {
        @subjectAltNames = split (/,/, 
$req->getParsed()->{HEADER}->{SUBJECT_ALT_NAME});
        foreach my $h (@subjectAltNames) {
                next if ($h !~ /^\s*email:/i);
                $h =~ s/^\s*email://i;
                push (@emails, $h);
        }
}
if (  $req->getParsed()->{EMAILADDRESS} ne "" ) {
        push (@emails, $req->getParsed()->{EMAILADDRESS});
};
foreach my $h (@emails) {
        my $lnk = new CGI({cmd=>"search", dataType=>"CERTIFICATE",
                        name=>"EMAIL", value=>$h} );
        $myEmail .= ", " if ($myEmail);
        $myEmail .= $lnk->a({-href=>$lnk->self_url()}, $h);
}

## If the Request is signed
if ( $parsed_req->{TYPE} =~ /with .*? Signature/i ) {

        $lnk = new CGI({cmd=>"viewSignature", dataType=>$dataType, key=>$key});
        if( libCheckSignature( OBJECT=>$req ) ) {
                $tmp = $query->img({src=>getRequired ('ValidSigImage'),
                                        border=>"0", align=>"MIDDLE"});
        } else {
                $tmp = $query->img({-src=>getRequired ('SigErrorImage'),
                                        -border=>"0", -align=>"MIDDLE"});
        }

        $sigInfo = $lnk->a({-href=>$lnk->self_url()}, $tmp );
        
} else {
        $def = "<FONT COLOR=\"RED\">Not Signed</FONT>";
        $parsed_req->{OPERATOR} = $def;
}

## get the subject
if ($req->getParsed()->{HEADER}->{SUBJECT}) {
        $subject = $req->getParsed()->{HEADER}->{SUBJECT};
} else {
        $subject = $req->getParsed()->{DN};
}
$subject =~ s/,\s*/\n/g;

$subject = $query->newInput( -regx=>'*',
                        -intype=>'textarea',
                        -name=>'subj',
                        -rows=>6,
                        -columns=>35,
                        -default=>$subject);

$subjectAltName = $query->newInput( -regx=>'*',
                        -intype=>'textfield',
                        -name=>'subjectAltName',
                        -size=>35,
                        -default=>$subjectAltName);

$role = $query->newInput( -regx=>'*',
                        -intype=>"popup_menu",
                        -name=>"ROLE",
                        -values=>  [ loadRoles () ],
                        -default=>$head->{ROLE});

$tmp = $head->{OPERATOR_DN};
$tmp =~ s/(,|\/)/<br>/g;

@cols = ( "Variable", "Value" );
$reqDataTable = $query->startTable(     COLS=>[ @cols ],
                                        WIDTH=>"100%",
                                        BGCOLOR=>"#F1F0F8",
                                        PADDING=>"2",
                                        CELLPADDING=>"4",
                                        TABLE_BGCOLOR=>"#F1F0F8",
                                        TITLE_BGCOLOR=>"#DDCCFF" );

$reqDataTable .=$query->addTableLine(DATA=>["<B>Request Version:</B>",
                ($parsed_req->{VERSION} or "n/a") ]);
$reqDataTable .=$query->addTableLine(DATA=>[ "<B>Serial Number:</B>",
                ($req->getSerial() or "n/a") ]);
$reqDataTable .=$query->addTableLine(DATA=>["<B>Request Type:</B>",
                ($parsed_req->{TYPE} or "n/a") ]);
$reqDataTable .=$query->addTableLine(DATA=>["<B>Submission Date:</B>",
                ($head->{NOTBEFORE} or "n/a") ]);
$reqDataTable .=$query->addTableLine(DATA=>
                [ "<B>Subject alternative name:</B>", $subjectAltName ]);
$reqDataTable .=$query->addTableLine(DATA=>
                [ "<B>Subject:</B>", $subject ]);
$reqDataTable .=$query->addTableLine(DATA=>
                ["<B>Role:</B>",
                ($role or "n/a") ]);
$reqDataTable.=$query->addTableLine(DATA=>
                ["<B>Used Identification PIN:</B>",
                ($head->{PIN} or "n/a") ]);
$reqDataTable .=$query->addTableLine(DATA=>
                [ "<B>Modulus (key size):</B>",
                ($parsed_req->{KEYSIZE} or "n/a") ]);
$reqDataTable .=$query->addTableLine(DATA=>
                [ "<B>Public Key Algorithm:</B>",
                ($parsed_req->{PK_ALGORITHM} or "n/a") ]);
$reqDataTable .=$query->addTableLine(DATA=>
                [ "<B>Signature Algorithm:</B>",
                ($parsed_req->{SIG_ALGORITHM} or "n/a") ]);

$reqDataTable .= $query->endTable();

$page = $query->subVar( $page, '@KEY@',     $dbKey );
$page = $query->subVar( $page, '@DATATYPE@',$dataType );
$page = $query->subVar( $page, '@REQDATA@', $reqDataTable );
$page = $query->subVar( $page, '@_KEYLESS_DATA@', "" );

## View the Signature Logo
$page = $query->subVar( $page, '@SIGINFO@',    $sigInfo );

print "$page";

1;

Reply via email to