aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorHeiko Bernloehr <Heiko.Bernloehr@FreeIT.de>2013-06-03 22:08:19 +0200
committerHeiko Bernloehr <Heiko.Bernloehr@FreeIT.de>2013-06-04 00:09:44 +0200
commit2060defad2971122d634d22d25f002ee4bad1eff (patch)
tree4c79bf7a72c5fc932f9216ea6d2e1117c3c50e36 /app
parent9282361c2d7a935ee2252fb19b434ea85a22e8d6 (diff)
downloadecs2-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.rb16
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