X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/dcad29dad0d29e22ffa0c34a8d9b43cbf5d64f12..868ce8d467210564211f6ed68f5f40fdd444ded5:/app/controllers/way_controller.rb diff --git a/app/controllers/way_controller.rb b/app/controllers/way_controller.rb index 42219d9b0..d569991af 100644 --- a/app/controllers/way_controller.rb +++ b/app/controllers/way_controller.rb @@ -1,7 +1,10 @@ class WayController < ApplicationController require 'xml/libxml' - before_filter :authorize, :only => [:create, :update, :destroy] + session :off + before_filter :authorize, :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 @@ -13,12 +16,9 @@ class WayController < ApplicationController render :nothing => true, :status => :precondition_failed else way.user_id = @user.id + way.save_with_history! - if way.save_with_history - render :text => way.id.to_s, :content_type => "text/plain" - else - render :nothing => true, :status => :internal_server_error - end + render :text => way.id.to_s, :content_type => "text/plain" end else render :nothing => true, :status => :bad_request @@ -39,8 +39,6 @@ class WayController < ApplicationController end rescue ActiveRecord::RecordNotFound render :nothing => true, :status => :not_found - rescue - render :nothing => true, :status => :internal_server_error end end @@ -58,14 +56,10 @@ class WayController < ApplicationController way.user_id = @user.id way.tags = new_way.tags way.segs = new_way.segs - way.timestamp = new_way.timestamp way.visible = true + way.save_with_history! - if way.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 @@ -75,8 +69,6 @@ class WayController < ApplicationController end rescue ActiveRecord::RecordNotFound render :nothing => true, :status => :not_found - rescue - render :nothing => true, :status => :internal_server_error end end @@ -86,20 +78,17 @@ class WayController < ApplicationController if way.visible way.user_id = @user.id + way.tags = [] + way.segs = [] way.visible = false + way.save_with_history! - if way.save_with_history - render :nothing => true - else - render :nothing => true, :status => :internal_server_error - end + render :nothing => true else render :nothing => true, :status => :gone end rescue ActiveRecord::RecordNotFound render :nothing => true, :status => :not_found - rescue - render :nothing => true, :status => :internal_server_error end end @@ -133,13 +122,15 @@ class WayController < ApplicationController end rescue ActiveRecord::RecordNotFound render :nothing => true, :status => :not_found - rescue - render :nothing => true, :status => :internal_server_error end end def ways - ids = params['ways'].split(',').collect { |w| w.to_i } + begin + ids = params['ways'].split(',').collect { |w| w.to_i } + rescue + ids = [] + end if ids.length > 0 doc = OSM::API.new.get_xml_doc