解决私有组织栏目通过url能访问的问题

luoquan
ouyangxuhua 10 years ago
parent 8784c7cec6
commit b77b63bbf1

@ -406,10 +406,14 @@ class FilesController < ApplicationController
@container_type = 2 @container_type = 2
@containers = [ OrgSubfield.includes(:attachments).reorder(sort).find(@org_subfield.id)] @containers = [ OrgSubfield.includes(:attachments).reorder(sort).find(@org_subfield.id)]
@organization = Organization.find(@containers.first.organization_id) @organization = Organization.find(@containers.first.organization_id)
show_attachments @containers if @organization.is_public? or User.current.admin? or User.current.member_of_org?(@organization)
@tag_list = attachment_tag_list @all_attachments show_attachments @containers
@page = params[:page] || 1 @tag_list = attachment_tag_list @all_attachments
render :layout => 'base_org' @page = params[:page] || 1
render :layout => 'base_org'
else
render_403
end
# @subfield = params[:org_subfield_id] # @subfield = params[:org_subfield_id]
end end

@ -33,61 +33,65 @@ class OrgSubfieldsController < ApplicationController
domain = Secdomain.where("subname=?", request.subdomain).first domain = Secdomain.where("subname=?", request.subdomain).first
@organization = Organization.find(domain.pid) @organization = Organization.find(domain.pid)
end end
@org_subfield = OrgSubfield.find_by_sql("select distinct org_subfields.* from org_subfields,"+ if @organization.is_public? or User.current.admin? or User.current.member_of_org?(@organization)
"subfield_subdomain_dirs where org_subfields.id = subfield_subdomain_dirs.org_subfield_id and "+ @org_subfield = OrgSubfield.find_by_sql("select distinct org_subfields.* from org_subfields,"+
" org_subfields.organization_id=#{@organization.id} and subfield_subdomain_dirs.name='#{params[:sub_dir_name]}'").first "subfield_subdomain_dirs where org_subfields.id = subfield_subdomain_dirs.org_subfield_id and "+
if @org_subfield.field_type == 'Post' " org_subfields.organization_id=#{@organization.id} and subfield_subdomain_dirs.name='#{params[:sub_dir_name]}'").first
if @org_subfield.field_type == 'Post'
@org_subfield_ids = @org_subfield.org_document_comments.map(&:id) << 0 @org_subfield_ids = @org_subfield.org_document_comments.map(&:id) << 0
@org_activities = OrgActivity.where("(org_act_type='OrgDocumentComment'and org_act_id in (#{@org_subfield_ids.join(",")})) || (container_type='OrgSubfield' and container_id=#{@org_subfield.id})").order('updated_at desc').page(params[:page] || 1).per(10) @org_activities = OrgActivity.where("(org_act_type='OrgDocumentComment'and org_act_id in (#{@org_subfield_ids.join(",")})) || (container_type='OrgSubfield' and container_id=#{@org_subfield.id})").order('updated_at desc').page(params[:page] || 1).per(10)
#redirect_to organization_path(@organization, :org_subfield_id => @org_subfield.id) #redirect_to organization_path(@organization, :org_subfield_id => @org_subfield.id)
else else
if params[:sort] if params[:sort]
params[:sort].split(",").each do |sort_type| params[:sort].split(",").each do |sort_type|
order_by = sort_type.split(":") order_by = sort_type.split(":")
case order_by[0] case order_by[0]
when "filename" when "filename"
attribute = "filename" attribute = "filename"
when "size" when "size"
attribute = "filesize" attribute = "filesize"
when "attach_type" when "attach_type"
attribute = "attachtype" attribute = "attachtype"
when "content_type" when "content_type"
attribute = "created_on" attribute = "created_on"
when "field_file_dense" when "field_file_dense"
attribute = "is_public" attribute = "is_public"
when "downloads" when "downloads"
attribute = "downloads" attribute = "downloads"
when "created_on" when "created_on"
attribute = "created_on" attribute = "created_on"
when "quotes" when "quotes"
attribute = "quotes" attribute = "quotes"
else else
attribute = "created_on" attribute = "created_on"
end
@sort = order_by[0]
@order = order_by[1]
if order_by.count == 1 && attribute
sort += "#{Attachment.table_name}.#{attribute} asc "
if sort_type != params[:sort].split(",").last
sort += ","
end end
elsif order_by.count == 2 && order_by[1] @sort = order_by[0]
sort += "#{Attachment.table_name}.#{attribute} #{order_by[1]} " @order = order_by[1]
if sort_type != params[:sort].split(",").last if order_by.count == 1 && attribute
sort += "," sort += "#{Attachment.table_name}.#{attribute} asc "
if sort_type != params[:sort].split(",").last
sort += ","
end
elsif order_by.count == 2 && order_by[1]
sort += "#{Attachment.table_name}.#{attribute} #{order_by[1]} "
if sort_type != params[:sort].split(",").last
sort += ","
end
end end
end end
else
sort = "#{Attachment.table_name}.created_on desc"
end end
else @container_type = 2
sort = "#{Attachment.table_name}.created_on desc" @containers = [OrgSubfield.includes(:attachments).reorder(sort).find(@org_subfield.id)]
@organization = Organization.find(@containers.first.organization_id)
show_attachments @containers
@tag_list = attachment_tag_list @all_attachments
end end
@container_type = 2 @page = params[:page] || 1
@containers = [ OrgSubfield.includes(:attachments).reorder(sort).find(@org_subfield.id)] else
@organization = Organization.find(@containers.first.organization_id) render_403
show_attachments @containers
@tag_list = attachment_tag_list @all_attachments
end end
@page = params[:page] || 1
#render :layout => 'base_org' #render :layout => 'base_org'
end end

Loading…
Cancel
Save