X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FTicket%2FAttachment%2Fdhandler;h=d61c1d8c758a18ab5983a7e3818e26ca9d90d453;hb=de9d037528895f7151a9aead6724ce2df95f9586;hp=8a62e6daf2cac7e7a2eb49c4006721329fcabc75;hpb=7322f2afedcc2f427e997d1535a503613a83f088;p=freeside.git diff --git a/rt/share/html/Ticket/Attachment/dhandler b/rt/share/html/Ticket/Attachment/dhandler index 8a62e6daf..d61c1d8c7 100755 --- a/rt/share/html/Ticket/Attachment/dhandler +++ b/rt/share/html/Ticket/Attachment/dhandler @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -68,11 +68,13 @@ unless ( $AttachmentObj->TransactionId() == $trans ) { my $content = $AttachmentObj->OriginalContent; my $content_type = $AttachmentObj->ContentType || 'text/plain'; -if ( RT->Config->Get('AlwaysDownloadAttachments') ) { +my $attachment_regex = qr{^(image/svg\+xml|application/pdf)}i; +if ( RT->Config->Get('AlwaysDownloadAttachments') || ($content_type =~ $attachment_regex) ) { $r->headers_out->{'Content-Disposition'} = "attachment"; } elsif ( !RT->Config->Get('TrustHTMLAttachments') ) { - $content_type = 'text/plain' if ( $content_type =~ /^text\/html/i ); + my $text_plain_regex = qr{^(text/html|application/xhtml\+xml|text/xml|application/xml)}i; + $content_type = 'text/plain' if ( $content_type =~ $text_plain_regex ); } elsif (lc $content_type eq 'text/html') { # If we're trusting and serving HTML for display not download, try to do