X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FTicket%2FAttachment%2Fdhandler;h=08fb97fbf5db5b2d5ef4688842067ada7a2f94ac;hb=44dd00a3ff974a17999e86e64488e996edc71e3c;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..08fb97fbf 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-2019 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