Expose redactions through the node history API calls
Add the show_redactions=true parameter to the old_node_controller and add a redacted attribute in node XML output.
This commit is contained in:
parent
67182f824e
commit
7d41b926cf
2 changed files with 18 additions and 11 deletions
|
@ -17,7 +17,7 @@ class OldNodeController < ApplicationController
|
||||||
|
|
||||||
doc = OSM::API.new.get_xml_doc
|
doc = OSM::API.new.get_xml_doc
|
||||||
|
|
||||||
visible_nodes = if @user and @user.moderator?
|
visible_nodes = if @user and @user.moderator? and params[:show_redactions] == "true"
|
||||||
node.old_nodes
|
node.old_nodes
|
||||||
else
|
else
|
||||||
node.old_nodes.unredacted
|
node.old_nodes.unredacted
|
||||||
|
@ -31,10 +31,10 @@ class OldNodeController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def version
|
def version
|
||||||
if @old_node.redacted? and (@user.nil? or not @user.moderator?)
|
if @old_node.redacted? and (@user.nil? or not @user.moderator?) and not params[:show_redactions] == "true"
|
||||||
render :nothing => true, :status => :forbidden
|
render :nothing => true, :status => :forbidden
|
||||||
else
|
|
||||||
|
|
||||||
|
else
|
||||||
response.last_modified = @old_node.timestamp
|
response.last_modified = @old_node.timestamp
|
||||||
|
|
||||||
doc = OSM::API.new.get_xml_doc
|
doc = OSM::API.new.get_xml_doc
|
||||||
|
|
|
@ -45,24 +45,31 @@ class OldNode < ActiveRecord::Base
|
||||||
def to_xml_node
|
def to_xml_node
|
||||||
el1 = XML::Node.new 'node'
|
el1 = XML::Node.new 'node'
|
||||||
el1['id'] = self.node_id.to_s
|
el1['id'] = self.node_id.to_s
|
||||||
el1['lat'] = self.lat.to_s
|
unless self.redacted? and (@user.nil? or not @user.moderator?)
|
||||||
el1['lon'] = self.lon.to_s
|
self.tags.each do |k,v|
|
||||||
|
el2 = XML::Node.new('tag')
|
||||||
|
el2['k'] = k.to_s
|
||||||
|
el2['v'] = v.to_s
|
||||||
|
el1 << el2
|
||||||
|
end
|
||||||
|
el1['lat'] = self.lat.to_s
|
||||||
|
el1['lon'] = self.lon.to_s
|
||||||
|
end
|
||||||
|
|
||||||
el1['changeset'] = self.changeset.id.to_s
|
el1['changeset'] = self.changeset.id.to_s
|
||||||
if self.changeset.user.data_public?
|
if self.changeset.user.data_public?
|
||||||
el1['user'] = self.changeset.user.display_name
|
el1['user'] = self.changeset.user.display_name
|
||||||
el1['uid'] = self.changeset.user.id.to_s
|
el1['uid'] = self.changeset.user.id.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
self.tags.each do |k,v|
|
|
||||||
el2 = XML::Node.new('tag')
|
|
||||||
el2['k'] = k.to_s
|
|
||||||
el2['v'] = v.to_s
|
|
||||||
el1 << el2
|
|
||||||
end
|
|
||||||
|
|
||||||
el1['visible'] = self.visible.to_s
|
el1['visible'] = self.visible.to_s
|
||||||
el1['timestamp'] = self.timestamp.xmlschema
|
el1['timestamp'] = self.timestamp.xmlschema
|
||||||
el1['version'] = self.version.to_s
|
el1['version'] = self.version.to_s
|
||||||
|
if self.redacted?
|
||||||
|
el1['redacted'] = self.redaction.title
|
||||||
|
end
|
||||||
return el1
|
return el1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue