Fixed attachment download.

This commit is contained in:
Martin Edenhofer 2012-09-13 03:14:13 +02:00
parent d36732dcf0
commit b291af1c04
4 changed files with 40 additions and 20 deletions

View file

@ -193,8 +193,8 @@ class Index extends App.Controller
bulk_form: => bulk_form: =>
@configure_attributes_ticket = [ @configure_attributes_ticket = [
{ name: 'ticket_state_id', display: 'State', tag: 'select', multiple: false, null: true, relation: 'TicketState', filter: @bulk, nulloption: true, default: '', class: 'span2', item_class: 'keepleft' }, { name: 'ticket_state_id', display: 'State', tag: 'select', multiple: false, null: true, relation: 'TicketState', filter: @bulk, translate: true, nulloption: true, default: '', class: 'span2', item_class: 'keepleft' },
{ name: 'ticket_priority_id', display: 'Priority', tag: 'select', multiple: false, null: true, relation: 'TicketPriority', filter: @bulk, nulloption: true, default: '', class: 'span2', item_class: 'keepleft' }, { name: 'ticket_priority_id', display: 'Priority', tag: 'select', multiple: false, null: true, relation: 'TicketPriority', filter: @bulk, translate: true, nulloption: true, default: '', class: 'span2', item_class: 'keepleft' },
{ name: 'group_id', display: 'Group', tag: 'select', multiple: false, null: true, relation: 'Group', filter: @bulk, nulloption: true, class: 'span2', item_class: 'keepleft' }, { name: 'group_id', display: 'Group', tag: 'select', multiple: false, null: true, relation: 'Group', filter: @bulk, nulloption: true, class: 'span2', item_class: 'keepleft' },
{ name: 'owner_id', display: 'Owner', tag: 'select', multiple: false, null: true, relation: 'User', filter: @bulk, nulloption: true, class: 'span2', item_class: 'keepleft' }, { name: 'owner_id', display: 'Owner', tag: 'select', multiple: false, null: true, relation: 'User', filter: @bulk, nulloption: true, class: 'span2', item_class: 'keepleft' },
] ]

View file

@ -63,7 +63,7 @@
<% if article.attachments: %> <% if article.attachments: %>
<div> <div>
<% for attachment in article.attachments: %> <% for attachment in article.attachments: %>
<a href="ticket_attachment/<%= attachment.id %>" target="_blank" data-type="attachment" class="" title="<%= attachment.size %>"><%= attachment.filename %></a> <a href="ticket_attachment/<%= article.ticket_id %>/<%= article.id %>/<%= attachment.id %>" target="_blank" data-type="attachment" class="" title="<%= attachment.size %>"><%= attachment.filename %></a>
<% end %> <% end %>
</div> </div>
<% end %> <% end %>

View file

@ -286,7 +286,27 @@ class TicketOverviewsController < ApplicationController
# permissin check # permissin check
ticket = Ticket.find( params[:ticket_id] ) ticket = Ticket.find( params[:ticket_id] )
return if !ticket_permission(ticket) if !ticket_permission(ticket)
render( :json => 'No such ticket.', :status => :unauthorized )
return
end
article = Ticket::Article.find( params[:article_id] )
if ticket.id != article.ticket_id
render( :json => 'No access, article_id/ticket_id is not matching.', :status => :unauthorized )
return
end
list = Store.list( :object => 'Ticket::Article', :o_id => params[:article_id] ) || []
access = false
list.each {|item|
if item.id.to_i == params[:id].to_i
access = true
end
}
if !access
render( :json => 'Requested file id is not linked with article_id.', :status => :unauthorized )
return
end
# find file # find file
file = Store.find(params[:id]) file = Store.find(params[:id])

View file

@ -8,7 +8,7 @@ module ExtraRoutes
map.resources :ticket_states, :only => [:create, :show, :index, :update] map.resources :ticket_states, :only => [:create, :show, :index, :update]
map.resources :tickets, :only => [:create, :show, :index, :update] map.resources :tickets, :only => [:create, :show, :index, :update]
map.match '/ticket_full/:id', :to => 'ticket_overviews#ticket_full' map.match '/ticket_full/:id', :to => 'ticket_overviews#ticket_full'
map.match '/ticket_attachment/:id', :to => 'ticket_overviews#ticket_attachment' map.match '/ticket_attachment/:ticket_id/:article_id/:id', :to => 'ticket_overviews#ticket_attachment'
map.match '/ticket_attachment_new', :to => 'ticket_overviews#ticket_attachment_new' map.match '/ticket_attachment_new', :to => 'ticket_overviews#ticket_attachment_new'
map.match '/ticket_article_plain/:id', :to => 'ticket_overviews#ticket_article_plain' map.match '/ticket_article_plain/:id', :to => 'ticket_overviews#ticket_article_plain'
map.match '/ticket_history/:id', :to => 'ticket_overviews#ticket_history' map.match '/ticket_history/:id', :to => 'ticket_overviews#ticket_history'