Commit fa3cc1dd24fed0cd3b041e469cada054fda479ab
Exists in
master
and in
4 other branches
Merge branch 'features/attachment_server' of /home/git/repositories/gitlab/gitlabhq
Showing
5 changed files
with
28 additions
and
2 deletions
Show diff stats
@@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
1 | +class FilesController < ApplicationController | ||
2 | + def download | ||
3 | + note = Note.find(params[:id]) | ||
4 | + | ||
5 | + if can?(current_user, :read_project, note.project) | ||
6 | + uploader = note.attachment | ||
7 | + send_file uploader.file.path, disposition: 'attachment' | ||
8 | + else | ||
9 | + not_found! | ||
10 | + end | ||
11 | + end | ||
12 | +end | ||
13 | + |
app/uploaders/attachment_uploader.rb
@@ -19,4 +19,12 @@ class AttachmentUploader < CarrierWave::Uploader::Base | @@ -19,4 +19,12 @@ class AttachmentUploader < CarrierWave::Uploader::Base | ||
19 | rescue | 19 | rescue |
20 | false | 20 | false |
21 | end | 21 | end |
22 | + | ||
23 | + def secure_url | ||
24 | + if self.class.storage == CarrierWave::Storage::File | ||
25 | + "/files/#{model.class.to_s.underscore}/#{model.id}/#{file.filename}" | ||
26 | + else | ||
27 | + url | ||
28 | + end | ||
29 | + end | ||
22 | end | 30 | end |
app/views/events/event/_note.html.haml
@@ -26,7 +26,7 @@ | @@ -26,7 +26,7 @@ | ||
26 | = markdown truncate(event.target.note, length: 70) | 26 | = markdown truncate(event.target.note, length: 70) |
27 | - note = event.target | 27 | - note = event.target |
28 | - if note.attachment.url | 28 | - if note.attachment.url |
29 | - = link_to note.attachment.url, target: "_blank", class: 'note-file-attach' do | 29 | + = link_to note.attachment.secure_url, target: "_blank", class: 'note-file-attach' do |
30 | - if note.attachment.image? | 30 | - if note.attachment.image? |
31 | = image_tag note.attachment.url, class: 'note-image-attach' | 31 | = image_tag note.attachment.url, class: 'note-image-attach' |
32 | - else | 32 | - else |
app/views/notes/_note.html.haml
@@ -31,7 +31,7 @@ | @@ -31,7 +31,7 @@ | ||
31 | - if note.attachment.image? | 31 | - if note.attachment.image? |
32 | = image_tag note.attachment.url, class: 'note-image-attach' | 32 | = image_tag note.attachment.url, class: 'note-image-attach' |
33 | .attachment.pull-right | 33 | .attachment.pull-right |
34 | - = link_to note.attachment.url, target: "_blank" do | 34 | + = link_to note.attachment.secure_url, target: "_blank" do |
35 | %i.icon-paper-clip | 35 | %i.icon-paper-clip |
36 | = note.attachment_identifier | 36 | = note.attachment_identifier |
37 | .clear | 37 | .clear |
config/routes.rb
@@ -46,6 +46,11 @@ Gitlab::Application.routes.draw do | @@ -46,6 +46,11 @@ Gitlab::Application.routes.draw do | ||
46 | end | 46 | end |
47 | 47 | ||
48 | # | 48 | # |
49 | + # Attachments serving | ||
50 | + # | ||
51 | + get 'files/:type/:id/:filename' => 'files#download', constraints: { id: /\d+/, type: /[a-z]+/, filename: /[a-zA-Z.0-9_\-\+]+/ } | ||
52 | + | ||
53 | + # | ||
49 | # Admin Area | 54 | # Admin Area |
50 | # | 55 | # |
51 | namespace :admin do | 56 | namespace :admin do |