|
|
|
@ -70,8 +70,8 @@ class AttachmentsController < ApplicationController
|
|
|
|
|
def direct_download
|
|
|
|
|
@attachment.increment_download
|
|
|
|
|
send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename),
|
|
|
|
|
:type => detect_content_type(@attachment),
|
|
|
|
|
:disposition => 'attachment' #inline can open in browser
|
|
|
|
|
:type => detect_content_type(@attachment),
|
|
|
|
|
:disposition => 'attachment' #inline can open in browser
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def direct_download_history
|
|
|
|
@ -175,7 +175,7 @@ class AttachmentsController < ApplicationController
|
|
|
|
|
@attachment = Attachment.find(params[:attachmentid])
|
|
|
|
|
if @attachment != nil
|
|
|
|
|
filedense = params[:newtype].to_s
|
|
|
|
|
# d = Iconv.conv("unicodebig","utf-8",filedense)
|
|
|
|
|
# d = Iconv.conv("unicodebig","utf-8",filedense)
|
|
|
|
|
if filedense == "%E5%85%AC%E5%BC%80" #l(:field_is_public)
|
|
|
|
|
@attachment.is_public = 1
|
|
|
|
|
else
|
|
|
|
@ -210,9 +210,9 @@ class AttachmentsController < ApplicationController
|
|
|
|
|
if @attachment.thumbnailable? && thumbnail = @attachment.thumbnail(:size => params[:size])
|
|
|
|
|
if stale?(:etag => thumbnail)
|
|
|
|
|
send_file thumbnail,
|
|
|
|
|
:filename => filename_for_content_disposition(@attachment.filename),
|
|
|
|
|
:type => detect_content_type(@attachment),
|
|
|
|
|
:disposition => 'inline'
|
|
|
|
|
:filename => filename_for_content_disposition(@attachment.filename),
|
|
|
|
|
:type => detect_content_type(@attachment),
|
|
|
|
|
:disposition => 'inline'
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
# No thumbnail for the attachment or thumbnail could not be created
|
|
|
|
@ -292,10 +292,10 @@ class AttachmentsController < ApplicationController
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
if !@attachment.container.nil? &&
|
|
|
|
|
(@attachment.container.is_a?(Course) || ((@attachment.container.has_attribute?(:course) || @attachment.container.has_attribute?(:course_id) ) &&
|
|
|
|
|
@attachment.container.course ) || ((@attachment.container.has_attribute?(:board) || @attachment.container.has_attribute?(:board_id)) &&
|
|
|
|
|
@attachment.container.board && @attachment.container.board.course ) || @attachment.container.is_a?(StudentWorksScore) || @attachment.container.is_a?(HomeworkCommon) ||
|
|
|
|
|
@attachment.container.is_a?(StudentWork))
|
|
|
|
|
(@attachment.container.is_a?(Course) || ((@attachment.container.has_attribute?(:course) || @attachment.container.has_attribute?(:course_id) ) &&
|
|
|
|
|
@attachment.container.course ) || ((@attachment.container.has_attribute?(:board) || @attachment.container.has_attribute?(:board_id)) &&
|
|
|
|
|
@attachment.container.board && @attachment.container.board.course ) || @attachment.container.is_a?(StudentWorksScore) || @attachment.container.is_a?(HomeworkCommon) ||
|
|
|
|
|
@attachment.container.is_a?(StudentWork))
|
|
|
|
|
if @attachment.container.is_a?(News)
|
|
|
|
|
format.html { redirect_to_referer_or news_path(@attachment.container) }
|
|
|
|
|
elsif @attachment.container.is_a?(StudentWorksScore)
|
|
|
|
@ -327,25 +327,25 @@ class AttachmentsController < ApplicationController
|
|
|
|
|
elsif !@attachment.container.nil? && @attachment.container.is_a?(OrgDocumentComment)
|
|
|
|
|
format.html {redirect_to_referer_or org_document_comment_path(@attachment.container)}
|
|
|
|
|
else
|
|
|
|
|
if @project.nil?
|
|
|
|
|
format.html { redirect_to_referer_or forum_memo_path(@attachment.container.forum, @attachment.container) }
|
|
|
|
|
else
|
|
|
|
|
if @project.nil?
|
|
|
|
|
format.html { redirect_to_referer_or forum_memo_path(@attachment.container.forum, @attachment.container) }
|
|
|
|
|
else
|
|
|
|
|
format.html { redirect_to_referer_or project_path(@project) }
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def delete_homework
|
|
|
|
|
@bid = @attachment.container.bid
|
|
|
|
|
# Make sure association callbacks are called
|
|
|
|
|
container = @attachment.container
|
|
|
|
|
@attachment.container.attachments.delete(@attachment)
|
|
|
|
|
#if container.attachments.empty?
|
|
|
|
|
#container.delete
|
|
|
|
|
#end
|
|
|
|
|
@bid = @attachment.container.bid
|
|
|
|
|
# Make sure association callbacks are called
|
|
|
|
|
container = @attachment.container
|
|
|
|
|
@attachment.container.attachments.delete(@attachment)
|
|
|
|
|
#if container.attachments.empty?
|
|
|
|
|
#container.delete
|
|
|
|
|
#end
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html { redirect_to_referer_or respond_path(@bid) }
|
|
|
|
@ -594,7 +594,7 @@ class AttachmentsController < ApplicationController
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
private
|
|
|
|
|
def find_project
|
|
|
|
|
@attachment = Attachment.find(params[:id])
|
|
|
|
|
# Show 404 if the filename in the url is wrong
|
|
|
|
@ -608,7 +608,7 @@ private
|
|
|
|
|
@attachment.container.board.course)
|
|
|
|
|
@course = @attachment.container.board.course
|
|
|
|
|
else
|
|
|
|
|
unless @attachment.container_type == 'Bid'|| @attachment.container_type == 'Organization' || @attachment.container_type == 'HomeworkAttach' || @attachment.container_type == 'Memo' || @attachment.container_type == 'Softapplication' || @attachment.container_type == 'PhoneAppVersion' || @attachment.container_type == 'StudentWorksScore'|| @attachment.container_type == 'StudentWork'
|
|
|
|
|
unless @attachment.container_type == 'Bid' || @attachment.container_type == 'Organization' || @attachment.container_type == 'HomeworkAttach' || @attachment.container_type == 'Memo' || @attachment.container_type == 'Softapplication' || @attachment.container_type == 'PhoneAppVersion' || @attachment.container_type == 'StudentWorksScore'|| @attachment.container_type == 'StudentWork'
|
|
|
|
|
@project = @attachment.project
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@ -628,7 +628,7 @@ private
|
|
|
|
|
|
|
|
|
|
def read_authorize
|
|
|
|
|
if @attachment.container_type == "HomeworkAttach" || @attachment.container_type == 'Bid'
|
|
|
|
|
true
|
|
|
|
|
true
|
|
|
|
|
#User.current.allowed_to?(:view_homework_attaches, @attachment.project) ? true : deny_access
|
|
|
|
|
else
|
|
|
|
|
@attachment.visible? ? true : deny_access
|
|
|
|
@ -654,16 +654,14 @@ private
|
|
|
|
|
|
|
|
|
|
def renderTag
|
|
|
|
|
@attachmentNew = Attachment.find(params[:attchmentId])
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def has_login
|
|
|
|
|
unless@attachment.container_type == "Organization"
|
|
|
|
|
unless @attachment && @attachment.container_type == "PhoneAppVersion"
|
|
|
|
|
render_403 if !User.current.logged? && !(@attachment.container_type == 'OrgSubfield' && @attachment.container.organization.allow_guest_download) && !(@attachment.container_type == 'OrgDocumentComment' && @attachment.container.organization.allow_guest_download)
|
|
|
|
|
end
|
|
|
|
|
unless @attachment && @attachment.container_type == "PhoneAppVersion"
|
|
|
|
|
render_403 if !User.current.logged? && !(@attachment.container_type == 'OrgSubfield' && @attachment.container.organization.allow_guest_download) && !(@attachment.container_type == 'OrgDocumentComment' && @attachment.container.organization.allow_guest_download)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|