[Rt-commit] r7511 - in rt/branches/3.7-EXPERIMENTAL: .

ruz at bestpractical.com ruz at bestpractical.com
Mon Apr 16 08:57:26 EDT 2007


Author: ruz
Date: Mon Apr 16 08:57:25 2007
New Revision: 7511

Modified:
   rt/branches/3.7-EXPERIMENTAL/   (props changed)
   rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Email.pm

Log:
 r4919 at cubic-pc:  cubic | 2007-04-11 06:32:58 +0400
 * fetch crypto options from headers


Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Email.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Email.pm	(original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Interface/Email.pm	Mon Apr 16 08:57:25 2007
@@ -335,14 +335,22 @@
         $args{'Ticket'} = $args{'Transaction'}->Object;
     }
 
-    if ( $args{'Ticket'} ) {
-        my $sign = $args{'Ticket'}->QueueObj->Sign;
-        my $encrypt = $args{'Ticket'}->QueueObj->Encrypt;
-        if ( $sign || $encrypt ) {
+    if ( $args{'Ticket'} && $args{'Transaction'} ) {
+        my $attachment = $args{'Transaction'}->Attachments->First;
+
+        my %crypt;
+        foreach my $argument ( qw(Sign Encrypt) ) {
+            if ( $attachment && defined $attachment->GetHeader("X-RT-$argument") ) {
+                $crypt{$argument} = $attachment->GetHeader("X-RT-$argument");
+            } else {
+                $crypt{$argument} = $args{'Ticket'}->QueueObj->$argument();
+            }
+        }
+
+        if ( $crypt{'Sign'} || $crypt{'Encrypt'} ) {
             require RT::Crypt::GnuPG;
             my %res = RT::Crypt::GnuPG::SignEncrypt(
-                Entity => $args{'Entity'},
-                Sign => $sign, Encrypt => $encrypt,
+                %crypt, Entity => $args{'Entity'},
             );
             return 0 if $res{'exit_code'};
         }


More information about the Rt-commit mailing list