##// END OF EJS Templates
Fixed an error when trying to copy an issue that does not exist....
Fixed an error when trying to copy an issue that does not exist. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8670 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r7828:885605b439de
r8550:b4cf4fca9d5b
Show More
attachments_controller.rb
95 lines | 3.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
Move VersionsController#download to AttachmentsController....
r1668 before_filter :find_project
Jean-Philippe Lang
Returns a 404 error when trying to view/download an attachment that can't be read from disk....
r2600 before_filter :file_readable, :read_authorize, :except => :destroy
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 before_filter :delete_authorize, :only => :destroy
Toshi MARUYAMA
remove trailing white-spaces from attachments controller source....
r5716
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 accept_api_auth :show, :download
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)
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
Resourcified attachments....
r7828 verify :method => :delete, :only => :destroy
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 def destroy
# Make sure association callbacks are called
@attachment.container.attachments.delete(@attachment)
redirect_to :back
rescue ::ActionController::RedirectBackError
redirect_to :controller => 'projects', :action => 'show', :id => @project
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