[Rt-commit] rt branch, 4.2/canonicalize-email-comparisons, created. rt-4.2.12-114-g8b59b1e

Dustin Graves dustin at bestpractical.com
Fri Apr 29 15:01:44 EDT 2016


The branch, 4.2/canonicalize-email-comparisons has been created
        at  8b59b1eacfe24d127dbc884f60ff3b3f15917722 (commit)

- Log -----------------------------------------------------------------
commit 8b59b1eacfe24d127dbc884f60ff3b3f15917722
Author: Dustin Graves <dustin at bestpractical.com>
Date:   Fri Apr 29 18:59:16 2016 +0000

    canonicalize email comparison in UpdateCc and AddWatchers
    
    This fixes duplicate e-mails on AddWatchers and requestors
    showing up in
    One-time Cc and One-time Bcc lists
    
    Fixes: I#31938, I#31939

diff --git a/lib/RT/Ticket.pm b/lib/RT/Ticket.pm
index f3c97c1..f128704 100644
--- a/lib/RT/Ticket.pm
+++ b/lib/RT/Ticket.pm
@@ -1022,6 +1022,7 @@ sub TransactionAddresses {
     while ( my $att = $attachments->Next ) {
         foreach my $addrlist ( values %{$att->Addresses } ) {
             foreach my $addr (@$addrlist) {
+                $addr->address( lc $addr->address ); # force lower-case
 
 # Skip addresses without a phrase (things that are just raw addresses) if we have a phrase
                 next
diff --git a/share/html/Ticket/Elements/UpdateCc b/share/html/Ticket/Elements/UpdateCc
index 6101139..ec241f9 100644
--- a/share/html/Ticket/Elements/UpdateCc
+++ b/share/html/Ticket/Elements/UpdateCc
@@ -87,11 +87,11 @@ $TicketObj
 </%args>
 <%init>
 my %txn_addresses = %{$TicketObj->TransactionAddresses};
-my @req_addresses = split /,/, $TicketObj->RequestorAddresses;
+my @req_addresses = Email::Address->parse( $TicketObj->RequestorAddresses );
 my @one_time_Ccs;
 
 foreach my $addr ( keys %txn_addresses) {
-  next if ( grep {$addr eq $_} @req_addresses );
+  next if ( grep {$addr eq lc $_->address} @req_addresses );
   push @one_time_Ccs,$addr;
 }
 </%init>

-----------------------------------------------------------------------


More information about the rt-commit mailing list