Commit fa3cc1dd authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'features/attachment_server' of /home/git/repositories/gitlab/gitlabhq

parents b7297285 f6cc71bc
class FilesController < ApplicationController
def download
note = Note.find(params[:id])
if can?(current_user, :read_project, note.project)
uploader = note.attachment
send_file uploader.file.path, disposition: 'attachment'
else
not_found!
end
end
end
...@@ -19,4 +19,12 @@ class AttachmentUploader < CarrierWave::Uploader::Base ...@@ -19,4 +19,12 @@ class AttachmentUploader < CarrierWave::Uploader::Base
rescue rescue
false false
end end
def secure_url
if self.class.storage == CarrierWave::Storage::File
"/files/#{model.class.to_s.underscore}/#{model.id}/#{file.filename}"
else
url
end
end
end end
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
= markdown truncate(event.target.note, length: 70) = markdown truncate(event.target.note, length: 70)
- note = event.target - note = event.target
- if note.attachment.url - if note.attachment.url
= link_to note.attachment.url, target: "_blank", class: 'note-file-attach' do = link_to note.attachment.secure_url, target: "_blank", class: 'note-file-attach' do
- if note.attachment.image? - if note.attachment.image?
= image_tag note.attachment.url, class: 'note-image-attach' = image_tag note.attachment.url, class: 'note-image-attach'
- else - else
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
- if note.attachment.image? - if note.attachment.image?
= image_tag note.attachment.url, class: 'note-image-attach' = image_tag note.attachment.url, class: 'note-image-attach'
.attachment.pull-right .attachment.pull-right
= link_to note.attachment.url, target: "_blank" do = link_to note.attachment.secure_url, target: "_blank" do
%i.icon-paper-clip %i.icon-paper-clip
= note.attachment_identifier = note.attachment_identifier
.clear .clear
...@@ -45,6 +45,11 @@ Gitlab::Application.routes.draw do ...@@ -45,6 +45,11 @@ Gitlab::Application.routes.draw do
root to: "projects#index" root to: "projects#index"
end end
#
# Attachments serving
#
get 'files/:type/:id/:filename' => 'files#download', constraints: { id: /\d+/, type: /[a-z]+/, filename: /[a-zA-Z.0-9_\-\+]+/ }
# #
# Admin Area # Admin Area
# #
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment