X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/0f91ad89663fbadca007b1c4dce03f9a76ad0e5f..eeeb13e4e4d67600e02f949cdeec11277a1156db:/app/controllers/relation_controller.rb diff --git a/app/controllers/relation_controller.rb b/app/controllers/relation_controller.rb index d00e9e077..b239dd405 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 @@ -140,16 +141,18 @@ class RelationController < ApplicationController # create XML. doc = OSM::API.new.get_xml_doc + visible_nodes = {} user_display_name_cache = {} nodes.each do |node| if node.visible? # should be unnecessary if data is consistent. doc.root << node.to_xml_node(user_display_name_cache) + visible_nodes[node.id] = node end end ways.each do |way| if way.visible? # should be unnecessary if data is consistent. - doc.root << way.to_xml_node(user_display_name_cache) + doc.root << way.to_xml_node(visible_nodes, user_display_name_cache) end end relations.each do |rel|