summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-02-18 11:25:34 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-02-18 11:25:34 +0200
commit6f0126385d04b4d19df7453fc2bd69f1ae8c3f25 (patch)
tree88faf927393997f918495db0e8815ab8ed459089 /app
parent767c39a325e1a883d09b5a9f2275961f58029bf3 (diff)
parentaaad7fd973d88a49fe23f01cca6b2248ad7977d4 (diff)
downloadgitlab-ce-6f0126385d04b4d19df7453fc2bd69f1ae8c3f25.tar.gz
Merge pull request #6313 from jvanbaarsen/fix-6207-msi-mimetype
Fixes #6207 Allow raw download of *.msi files
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects/raw_controller.rb18
1 files changed, 13 insertions, 5 deletions
diff --git a/app/controllers/projects/raw_controller.rb b/app/controllers/projects/raw_controller.rb
index 18ace028b0c..a6b7ae3f127 100644
--- a/app/controllers/projects/raw_controller.rb
+++ b/app/controllers/projects/raw_controller.rb
@@ -11,11 +11,7 @@ class Projects::RawController < Projects::ApplicationController
@blob = @repository.blob_at(@commit.id, @path)
if @blob
- type = if @blob.mime_type =~ /html|javascript/
- 'text/plain; charset=utf-8'
- else
- @blob.mime_type
- end
+ type = get_blob_type
headers['X-Content-Type-Options'] = 'nosniff'
@@ -29,5 +25,17 @@ class Projects::RawController < Projects::ApplicationController
not_found!
end
end
+
+ private
+
+ def get_blob_type
+ if @blob.mime_type =~ /html|javascript/
+ 'text/plain; charset=utf-8'
+ elsif @blob.name =~ /(?:msi|exe|rar|r0\d|7z|7zip|zip)$/
+ 'application/octet-stream'
+ else
+ @blob.mime_type
+ end
+ end
end