diff options
| author | Ivan Kohler <ivan@freeside.biz> | 2012-12-12 10:26:29 -0800 |
|---|---|---|
| committer | Ivan Kohler <ivan@freeside.biz> | 2012-12-12 10:26:29 -0800 |
| commit | 84f2df8931fa02e63fb21f8f0bb87dd9577b8919 (patch) | |
| tree | 8cbe43418fe23f3fc28cc8f3e19a61666a1696ed /rt/share/html/Elements/GnuPG/SignEncryptWidget | |
| parent | d7678b9b97068dcd352f0ea101c6c8d02ae330d6 (diff) | |
rt 4.0.8
Diffstat (limited to 'rt/share/html/Elements/GnuPG/SignEncryptWidget')
| -rw-r--r-- | rt/share/html/Elements/GnuPG/SignEncryptWidget | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/rt/share/html/Elements/GnuPG/SignEncryptWidget b/rt/share/html/Elements/GnuPG/SignEncryptWidget index 0ae0f841f..2f3f1035d 100644 --- a/rt/share/html/Elements/GnuPG/SignEncryptWidget +++ b/rt/share/html/Elements/GnuPG/SignEncryptWidget @@ -129,12 +129,16 @@ if ( $self->{'Sign'} ) { $QueueObj ||= $TicketObj->QueueObj if $TicketObj; - my $address = $self->{'SignUsing'}; - $address ||= ($self->{'UpdateType'} && $self->{'UpdateType'} eq "private") + my $private = $session{'CurrentUser'}->UserObj->PrivateKey || ''; + my $queue = ($self->{'UpdateType'} && $self->{'UpdateType'} eq "private") ? ( $QueueObj->CommentAddress || RT->Config->Get('CommentAddress') ) : ( $QueueObj->CorrespondAddress || RT->Config->Get('CorrespondAddress') ); - unless ( RT::Crypt::GnuPG::DrySign( $address ) ) { + my $address = $self->{'SignUsing'} || $queue; + if ($address ne $private and $address ne $queue) { + push @{ $self->{'GnuPGCanNotSignAs'} ||= [] }, $address; + $checks_failure = 1; + } elsif ( not RT::Crypt::GnuPG::DrySign( $address ) ) { push @{ $self->{'GnuPGCanNotSignAs'} ||= [] }, $address; $checks_failure = 1; } else { |
