summaryrefslogtreecommitdiff
path: root/rt/share/html/Ticket/Attachment/dhandler
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-08-06 10:11:28 -0700
committerIvan Kohler <ivan@freeside.biz>2017-08-06 10:11:28 -0700
commitde9d037528895f7151a9aead6724ce2df95f9586 (patch)
tree3ba47a923a1d6033605ffc5586ed1af439d8c141 /rt/share/html/Ticket/Attachment/dhandler
parentb226bc6bd81f999176cdbfa53a799033ff0a0307 (diff)
rt 4.2.14 (#13852)
Diffstat (limited to 'rt/share/html/Ticket/Attachment/dhandler')
-rwxr-xr-xrt/share/html/Ticket/Attachment/dhandler8
1 files changed, 5 insertions, 3 deletions
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
%# <sales@bestpractical.com>
%#
%# (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