Better exception handling
This commit is contained in:
parent
60e7fb2ad4
commit
5879b4b21a
@ -34,17 +34,14 @@ class DmsfFilesController < ApplicationController
|
||||
helper :dmsf_workflows
|
||||
|
||||
def view
|
||||
if params[:download].blank?
|
||||
@revision = @file.last_revision
|
||||
else
|
||||
@revision = DmsfFileRevision.find(params[:download].to_i)
|
||||
if @revision.file != @file
|
||||
render_403
|
||||
return
|
||||
end
|
||||
end
|
||||
check_project(@revision.file)
|
||||
begin
|
||||
if params[:download].blank?
|
||||
@revision = @file.last_revision
|
||||
else
|
||||
@revision = DmsfFileRevision.find(params[:download].to_i)
|
||||
raise DmsfAccessError if @revision.file != @file
|
||||
end
|
||||
check_project(@revision.file)
|
||||
raise ActionController::MissingFile if @file.deleted
|
||||
log_activity('downloaded')
|
||||
access = DmsfFileRevisionAccess.new
|
||||
@ -56,8 +53,12 @@ class DmsfFilesController < ApplicationController
|
||||
send_file(@revision.disk_file,
|
||||
:filename => filename_for_content_disposition(@revision.formatted_name(member ? member.title_format : nil)),
|
||||
:type => @revision.detect_content_type,
|
||||
:disposition => 'inline')
|
||||
rescue ActionController::MissingFile
|
||||
:disposition => 'inline')
|
||||
rescue DmsfAccessError => e
|
||||
Rails.logger.error e.message
|
||||
render_403
|
||||
rescue Exception => e
|
||||
Rails.logger.error e.message
|
||||
render_404
|
||||
end
|
||||
end
|
||||
@ -65,17 +66,14 @@ class DmsfFilesController < ApplicationController
|
||||
def show
|
||||
# The download is put here to provide more clear and usable links
|
||||
if params.has_key?(:download)
|
||||
if params[:download].blank?
|
||||
@revision = @file.last_revision
|
||||
else
|
||||
@revision = DmsfFileRevision.find(params[:download].to_i)
|
||||
if @revision.file != @file
|
||||
render_403
|
||||
return
|
||||
end
|
||||
end
|
||||
check_project(@revision.file)
|
||||
begin
|
||||
if params[:download].blank?
|
||||
@revision = @file.last_revision
|
||||
else
|
||||
@revision = DmsfFileRevision.find(params[:download].to_i)
|
||||
raise DmsfAccessError if @revision.file != @file
|
||||
end
|
||||
check_project(@revision.file)
|
||||
raise ActionController::MissingFile if @revision.file.deleted
|
||||
log_activity('downloaded')
|
||||
access = DmsfFileRevisionAccess.new
|
||||
@ -88,7 +86,11 @@ class DmsfFilesController < ApplicationController
|
||||
:filename => filename_for_content_disposition(@revision.formatted_name(member ? member.title_format : nil)),
|
||||
:type => @revision.detect_content_type,
|
||||
:disposition => 'attachment')
|
||||
rescue ActionController::MissingFile
|
||||
rescue DmsfAccessError => e
|
||||
Rails.logger.error e.message
|
||||
render_403
|
||||
rescue Exception => e
|
||||
Rails.logger.error e.message
|
||||
render_404
|
||||
end
|
||||
return
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user