%#
%# COPYRIGHT:
%#
-%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC
%# <sales@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
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