Don't authorize! until we know the digital file exists

This commit is contained in:
Michael Bianco
2012-07-03 13:21:33 -04:00
parent f8da0db2b7
commit cdbc636e79

View File

@@ -1,16 +1,25 @@
module Spree
class DigitalsController < Spree::BaseController
ssl_required :show
def show
link = DigitalLink.find_by_secret(params[:secret])
if link.present? and link.digital.attachment.present?
attachment = link.digital.attachment
if link.authorize! and File.file?(attachment.path)
send_file attachment.path, :filename => attachment.original_filename, :type => attachment.content_type and return
# don't authorize the link unless the file exists
# the logger error will help track down customer issues easier
if File.file?(attachment.path)
if link.authorize!
send_file attachment.path, :filename => attachment.original_filename, :type => attachment.content_type and return
end
else
Rails.logger.error "Missing Digital Item: #{attachment.path}"
end
end
render :unauthorized
end