diff options
author | Marin Jankovski <maxlazio@gmail.com> | 2015-12-07 15:03:50 +0100 |
---|---|---|
committer | Marin Jankovski <maxlazio@gmail.com> | 2015-12-07 15:03:50 +0100 |
commit | e53b350cb6db7438c1a50c500b324fd87afc41c4 (patch) | |
tree | 61626047bbb7c248e1e245dc9dde291a9ae65b5a /app/controllers/projects/raw_controller.rb | |
parent | b2c4675cb0e681027334e5bd046451d3116924c8 (diff) | |
download | gitlab-ce-e53b350cb6db7438c1a50c500b324fd87afc41c4.tar.gz |
Add specs for showing lfs object in UI.
Diffstat (limited to 'app/controllers/projects/raw_controller.rb')
-rw-r--r-- | app/controllers/projects/raw_controller.rb | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/app/controllers/projects/raw_controller.rb b/app/controllers/projects/raw_controller.rb index c56f432a1f1..be7d5c187fe 100644 --- a/app/controllers/projects/raw_controller.rb +++ b/app/controllers/projects/raw_controller.rb @@ -38,18 +38,28 @@ class Projects::RawController < Projects::ApplicationController type = get_blob_type send_data( - @blob.data, - type: type, - disposition: 'inline' - ) + @blob.data, + type: type, + disposition: 'inline' + ) end def send_lfs_object - lfs_object = LfsObject.find_by_oid(@blob.lfs_oid) - return nil unless lfs_object && lfs_object.file.exists? + lfs_object = find_lfs_object - if lfs_object.projects.exists?(lfs_object.storage_project(@project).id) + if lfs_object && lfs_object.project_allowed_access?(@project) send_file lfs_object.file.path, filename: @blob.name, disposition: 'attachment' + else + render_404 + end + end + + def find_lfs_object + lfs_object = LfsObject.find_by_oid(@blob.lfs_oid) + if lfs_object && lfs_object.file.exists? + lfs_object + else + nil end end end |