summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Javier López <fjlopez@gitlab.com>2018-07-31 19:15:22 -0400
committerFrancisco Javier López <fjlopez@gitlab.com>2018-07-31 19:15:22 -0400
commite00e7bd8a29cf5336c45ea33e26a515efbbfbd10 (patch)
tree96c7901e77b7c92ecdb15d1bf2a1513871bb7b78
parent7758fdf1ad14d488fbbbe7c25d21d9d3bc0c82aa (diff)
downloadgitlab-ce-fj-47229-fix-logo-lfs-tracked.tar.gz
Fixed bug and extracted codefj-47229-fix-logo-lfs-tracked
-rw-r--r--app/controllers/projects/avatars_controller.rb7
-rw-r--r--app/controllers/projects/raw_controller.rb32
-rw-r--r--app/helpers/blob_helper.rb35
3 files changed, 38 insertions, 36 deletions
diff --git a/app/controllers/projects/avatars_controller.rb b/app/controllers/projects/avatars_controller.rb
index a13d552dbd8..47e1550814f 100644
--- a/app/controllers/projects/avatars_controller.rb
+++ b/app/controllers/projects/avatars_controller.rb
@@ -5,12 +5,9 @@ class Projects::AvatarsController < Projects::ApplicationController
def show
@blob = @repository.blob_at_branch(@repository.root_ref, @project.avatar_in_git)
- if @blob
- headers['X-Content-Type-Options'] = 'nosniff'
-
- return if cached_blob?
- send_git_blob @repository, @blob
+ if @blob
+ send_blob
else
render_404
end
diff --git a/app/controllers/projects/raw_controller.rb b/app/controllers/projects/raw_controller.rb
index 1cba0011304..0b3c331db0f 100644
--- a/app/controllers/projects/raw_controller.rb
+++ b/app/controllers/projects/raw_controller.rb
@@ -2,7 +2,6 @@
class Projects::RawController < Projects::ApplicationController
include ExtractsPath
include BlobHelper
- include SendFileUpload
before_action :require_non_empty_project
before_action :assign_ref_vars
@@ -11,38 +10,9 @@ class Projects::RawController < Projects::ApplicationController
def show
@blob = @repository.blob_at(@commit.id, @path)
if @blob
- headers['X-Content-Type-Options'] = 'nosniff'
-
- return if cached_blob?
-
- if @blob.stored_externally?
- send_lfs_object
- else
- send_git_blob @repository, @blob, inline: (params[:inline] != 'false')
- end
+ send_blob(inline: (params[:inline] != 'false'))
else
render_404
end
end
-
- private
-
- def send_lfs_object
- lfs_object = find_lfs_object
-
- if lfs_object && lfs_object.project_allowed_access?(@project)
- send_upload(lfs_object.file, attachment: @blob.name)
- 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
diff --git a/app/helpers/blob_helper.rb b/app/helpers/blob_helper.rb
index 7eb45ddd117..68c25ba3c5a 100644
--- a/app/helpers/blob_helper.rb
+++ b/app/helpers/blob_helper.rb
@@ -1,4 +1,6 @@
module BlobHelper
+ include SendFileUpload
+
def highlight(blob_name, blob_content, repository: nil, plain: false)
plain ||= blob_content.length > Blob::MAXIMUM_TEXT_HIGHLIGHT_SIZE
highlighted = Gitlab::Highlight.highlight(blob_name, blob_content, plain: plain, repository: repository)
@@ -340,4 +342,37 @@ module BlobHelper
edit_fork_button_tag(common_classes, project, text, edit_blob_fork_params(edit_path))
end
end
+
+ def send_blob(params = {})
+ headers['X-Content-Type-Options'] = 'nosniff'
+
+ return if cached_blob?
+
+ if @blob.stored_externally?
+ send_lfs_object
+ else
+ send_git_blob @repository, @blob, params
+ end
+ end
+
+ private
+
+ def send_lfs_object
+ lfs_object = find_lfs_object
+
+ if lfs_object && lfs_object.project_allowed_access?(@project)
+ send_upload(lfs_object.file, attachment: @blob.name)
+ 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