summaryrefslogtreecommitdiff
path: root/app/controllers/projects/raw_controller.rb
diff options
context:
space:
mode:
authorMarin Jankovski <maxlazio@gmail.com>2015-12-07 15:03:50 +0100
committerMarin Jankovski <maxlazio@gmail.com>2015-12-07 15:03:50 +0100
commite53b350cb6db7438c1a50c500b324fd87afc41c4 (patch)
tree61626047bbb7c248e1e245dc9dde291a9ae65b5a /app/controllers/projects/raw_controller.rb
parentb2c4675cb0e681027334e5bd046451d3116924c8 (diff)
downloadgitlab-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.rb24
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