##// END OF EJS Templates
When copying issues, let the status be changed to default or left unchanged....
When copying issues, let the status be changed to default or left unchanged. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9404 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r9230:2e240103f381
r9270:09375960d69d
Show More
attachments_controller.rb
124 lines | 4.2 KiB | text/x-ruby | RubyLexer
/ app / controllers / attachments_controller.rb
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 # Redmine - project management software
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716 # Copyright (C) 2006-2011 Jean-Philippe Lang
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716 #
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716 #
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class AttachmentsController < ApplicationController
Jean-Philippe Lang
Adds support for adding attachments to issues through the REST API (#8171)....
r8808 before_filter :find_project, :except => :upload
before_filter :file_readable, :read_authorize, :only => [:show, :download]
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 before_filter :delete_authorize, :only => :destroy
Jean-Philippe Lang
Adds support for adding attachments to issues through the REST API (#8171)....
r8808 before_filter :authorize_global, :only => :upload
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
Adds support for adding attachments to issues through the REST API (#8171)....
r8808 accept_api_auth :show, :download, :upload
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
Unified diff viewer for attached files with .patch or .diff extension (#1403)....
r1502 def show
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 respond_to do |format|
format.html {
if @attachment.is_diff?
@diff = File.new(@attachment.diskfile, "rb").read
Toshi MARUYAMA
attachment: add a new feature to switch "side by side" and "inline" for patches (#9612)...
r7740 @diff_type = params[:type] || User.current.pref[:diff_type] || 'inline'
@diff_type = 'inline' unless %w(inline sbs).include?(@diff_type)
Toshi MARUYAMA
attachment: fix that diff type is not saved in user preference (#10152)...
r8641 # Save diff type as user preference
if User.current.logged? && @diff_type != User.current.pref[:diff_type]
User.current.pref[:diff_type] = @diff_type
User.current.preference.save
end
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 render :action => 'diff'
elsif @attachment.is_text? && @attachment.filesize <= Setting.file_max_size_displayed.to_i.kilobyte
@content = File.new(@attachment.diskfile, "rb").read
render :action => 'file'
else
download
end
}
format.api
Jean-Philippe Lang
Unified diff viewer for attached files with .patch or .diff extension (#1403)....
r1502 end
end
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538 def download
Jean-Philippe Lang
Increment project files downloads....
r2207 if @attachment.container.is_a?(Version) || @attachment.container.is_a?(Project)
@attachment.increment_download
end
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
Image attachments are now sent inline to be viewed directly in the browser....
r636 # images are sent inline
Jean-Philippe Lang
Non-ascii attachement filename fix for IE....
r1039 send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename),
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716 :type => detect_content_type(@attachment),
Jean-Philippe Lang
Image attachments are now sent inline to be viewed directly in the browser....
r636 :disposition => (@attachment.image? ? 'inline' : 'attachment')
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538 end
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
Adds support for adding attachments to issues through the REST API (#8171)....
r8808 def upload
# Make sure that API users get used to set this content type
# as it won't trigger Rails' automatic parsing of the request body for parameters
unless request.content_type == 'application/octet-stream'
render :nothing => true, :status => 406
return
end
@attachment = Attachment.new(:file => request.body)
@attachment.author = User.current
Jean-Philippe Lang
Adds Redmine::Utils.random_hex for generating a random hex string....
r8951 @attachment.filename = Redmine::Utils.random_hex(16)
Jean-Philippe Lang
Adds support for adding attachments to issues through the REST API (#8171)....
r8808
if @attachment.save
respond_to do |format|
format.api { render :action => 'upload', :status => :created }
end
else
respond_to do |format|
format.api { render_validation_errors(@attachment) }
end
end
end
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 def destroy
Jean-Philippe Lang
Rails 3.1 compatibility....
r8953 if @attachment.container.respond_to?(:init_journal)
@attachment.container.init_journal(User.current)
end
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 # Make sure association callbacks are called
@attachment.container.attachments.delete(@attachment)
Jean-Philippe Lang
Code cleanup....
r9230 redirect_to_referer_or project_path(@project)
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 end
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538 private
def find_project
@attachment = Attachment.find(params[:id])
Jean-Philippe Lang
Appends the filename to the attachment url so that clients that ignore content-disposition http header get the real filename (#1649)....
r1669 # Show 404 if the filename in the url is wrong
raise ActiveRecord::RecordNotFound if params[:filename] && params[:filename] != @attachment.filename
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538 @project = @attachment.project
Jean-Philippe Lang
Move VersionsController#download to AttachmentsController....
r1668 rescue ActiveRecord::RecordNotFound
render_404
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538 end
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
Returns a 404 error when trying to view/download an attachment that can't be read from disk....
r2600 # Checks that the file exists and is readable
def file_readable
@attachment.readable? ? true : render_404
end
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 def read_authorize
@attachment.visible? ? true : deny_access
end
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 def delete_authorize
@attachment.deletable? ? true : deny_access
end
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
Auto-detect attachment content type when blank (#3782)....
r3144 def detect_content_type(attachment)
content_type = attachment.content_type
if content_type.blank?
content_type = Redmine::MimeType.of(attachment.filename)
end
Jean-Philippe Lang
Fixed: error when downloading a file with no matching mime type (#3782)....
r3167 content_type.to_s
Jean-Philippe Lang
Auto-detect attachment content type when blank (#3782)....
r3144 end
Jean-Philippe Lang
Attachments can now be added to wiki pages (original patch by Pavol Murin). Only authorized users can add/delete attachments....
r538 end