diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-02-18 11:25:34 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-02-18 11:25:34 +0200 |
commit | 6f0126385d04b4d19df7453fc2bd69f1ae8c3f25 (patch) | |
tree | 88faf927393997f918495db0e8815ab8ed459089 /app | |
parent | 767c39a325e1a883d09b5a9f2275961f58029bf3 (diff) | |
parent | aaad7fd973d88a49fe23f01cca6b2248ad7977d4 (diff) | |
download | gitlab-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.rb | 18 |
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 |