X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/6d44c78407ea9a553be030f3f7c49b48d616878b..ac8a24e79e4c7cfb94e8d13788f85311ec0bf293:/app/controllers/relation_controller.rb diff --git a/app/controllers/relation_controller.rb b/app/controllers/relation_controller.rb index efd5bf9dc..c67b4ddf1 100644 --- a/app/controllers/relation_controller.rb +++ b/app/controllers/relation_controller.rb @@ -1,9 +1,10 @@ class RelationController < ApplicationController require 'xml/libxml' + session :off before_filter :authorize, :only => [:create, :update, :delete] - before_filter :check_availability, :only => [:create, :update, :delete] - + before_filter :check_write_availability, :only => [:create, :update, :delete] + before_filter :check_read_availability, :except => [:create, :update, :delete] after_filter :compress_output def create @@ -15,12 +16,9 @@ class RelationController < ApplicationController render :nothing => true, :status => :precondition_failed else relation.user_id = @user.id + relation.save_with_history! - if relation.save_with_history - render :text => relation.id.to_s, :content_type => "text/plain" - else - render :text => "save error", :status => :internal_server_error - end + render :text => relation.id.to_s, :content_type => "text/plain" end else render :nothing => true, :status => :bad_request @@ -61,12 +59,9 @@ class RelationController < ApplicationController relation.tags = new_relation.tags relation.members = new_relation.members relation.visible = true + relation.save_with_history! - if relation.save_with_history - render :nothing => true - else - render :nothing => true, :status => :internal_server_error - end + render :nothing => true end else render :nothing => true, :status => :bad_request @@ -94,12 +89,9 @@ class RelationController < ApplicationController relation.tags = [] relation.members = [] relation.visible = false + relation.save_with_history! - if relation.save_with_history - render :nothing => true - else - render :nothing => true, :status => :internal_server_error - end + render :nothing => true end else render :nothing => true, :status => :gone