X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FTicket%2FAttachment%2Fdhandler;h=2b530fcd3c9776075484232b8b993a3180a6e81d;hb=187086c479a09629b7d180eec513fb7657f4e291;hp=134ecd6e92df492cdb2f88de373932218e5e48b5;hpb=026dc7ad72ba972f230b6709e31fa64397d75ad4;p=freeside.git diff --git a/rt/share/html/Ticket/Attachment/dhandler b/rt/share/html/Ticket/Attachment/dhandler index 134ecd6e9..2b530fcd3 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-2015 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2018 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