diff options
author | Heiko Bernloehr <Heiko.Bernloehr@FreeIT.de> | 2013-06-03 22:08:19 +0200 |
---|---|---|
committer | Heiko Bernloehr <Heiko.Bernloehr@FreeIT.de> | 2013-06-04 00:09:44 +0200 |
commit | 2060defad2971122d634d22d25f002ee4bad1eff (patch) | |
tree | 4c79bf7a72c5fc932f9216ea6d2e1117c3c50e36 /app | |
parent | 9282361c2d7a935ee2252fb19b434ea85a22e8d6 (diff) | |
download | ecs2-2060defad2971122d634d22d25f002ee4bad1eff.tar.gz ecs2-2060defad2971122d634d22d25f002ee4bad1eff.zip |
Missing headers when POST on resource queue.
There were missing headers X-EcsSender and X-EcsReceiverCommunities
when accessing a resource through a POST on its queue mode or a
DELETE. This was caused by deleting the relationships between message
memberships before composing the headers. To prevent a double rendering
error it was also necessary to devide the show_render method.
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/messages_controller.rb | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 0ab375b..c087362 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -26,6 +26,7 @@ class MessagesController < ApplicationController def initialize super + @render_cmd=nil end def index @@ -45,6 +46,7 @@ class MessagesController < ApplicationController Message.filter(__method__, @app_namespace, @ressource_name, @record, params) @body = @record.body show_render + eval(@render_cmd) else raise Ecs::AuthorizationException, "You are not allowed to access this resource, " + @@ -67,6 +69,9 @@ class MessagesController < ApplicationController end def destroy + @body = @record.body + @memberships = Membership.receiver(@participant.id, @record.id) + show_render case when @record.outtimed_auths_resource_by_non_owner?(@app_namespace, @resource_name, @participant) @record.destroy_as_receiver(@participant) @@ -76,8 +81,7 @@ class MessagesController < ApplicationController else @record.destroy_as_receiver(@participant) end - @body = @record.body - show_render + eval(@render_cmd) end def fifo @@ -177,12 +181,16 @@ protected @body = @record.body if request.post? if @record + show_render @record.destroy_as_receiver(@participant) + eval(@render_cmd) else raise ActiveRecord::RecordNotFound end + else + show_render + eval(@render_cmd) end - show_render else empty_render end @@ -232,7 +240,7 @@ protected if stale?(:etag => @record, :last_modified => @record.updated_at.utc, :x_ecs_receiver_communities => x_ecs_receiver_communities, :x_ecs_sender => x_ecs_sender) - render :text => @body, :layout => false, :status => 200, :content_type => Mime::Type.lookup(@record.content_type) + @render_cmd='render :text => @body, :layout => false, :status => 200, :content_type => Mime::Type.lookup(@record.content_type)' end end |