Allow attachment thumbnails from REST API (#18707).

git-svn-id: http://svn.redmine.org/redmine/trunk@13806 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2014-12-26 11:26:24 +00:00
parent 0e58ee44eb
commit 12890945e5
4 changed files with 24 additions and 1 deletions

View File

@@ -22,7 +22,7 @@ class AttachmentsController < ApplicationController
before_filter :delete_authorize, :only => :destroy
before_filter :authorize_global, :only => :upload
accept_api_auth :show, :download, :upload
accept_api_auth :show, :download, :thumbnail, :upload
def show
respond_to do |format|

View File

@@ -54,6 +54,10 @@ module AttachmentsHelper
api.content_type attachment.content_type
api.description attachment.description
api.content_url download_named_attachment_url(attachment, attachment.filename)
if attachment.thumbnailable?
api.thumbnail_url thumbnail_url(attachment)
end
api.content_url download_named_attachment_url(attachment, attachment.filename)
api.author(:id => attachment.author.id, :name => attachment.author.name) if attachment.author
api.created_on attachment.created_on
end

View File

@@ -47,6 +47,15 @@ class Redmine::ApiTest::AttachmentsTest < Redmine::ApiTest::Base
end
end
test "GET /attachments/:id.xml for image should include thumbnail_url" do
get '/attachments/16.xml', {}, credentials('jsmith')
assert_response :success
assert_equal 'application/xml', @response.content_type
assert_select 'attachment id:content(16)' do
assert_select '~ thumbnail_url', :text => 'http://www.example.com/attachments/thumbnail/16'
end
end
test "GET /attachments/:id.xml should deny access without credentials" do
get '/attachments/7.xml'
assert_response 401
@@ -66,6 +75,12 @@ class Redmine::ApiTest::AttachmentsTest < Redmine::ApiTest::Base
set_tmp_attachments_directory
end
test "GET /attachments/thumbnail/:id should return the thumbnail" do
skip unless convert_installed?
get '/attachments/thumbnail/16', {}, credentials('jsmith')
assert_response :success
end
test "POST /uploads.xml should return the token" do
set_tmp_attachments_directory
assert_difference 'Attachment.count' do

View File

@@ -131,6 +131,10 @@ class ActiveSupport::TestCase
Redmine::Thumbnail.convert_available?
end
def convert_installed?
self.class.convert_installed?
end
# Returns the path to the test +vendor+ repository
def self.repository_path(vendor)
path = Rails.root.join("tmp/test/#{vendor.downcase}_repository").to_s