Fixed AMF controller methods to hide redacted nodes
authorMatt Amos <zerebubuth@gmail.com>
Sat, 31 Mar 2012 19:12:25 +0000 (20:12 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 5 Apr 2012 12:50:11 +0000 (13:50 +0100)
app/controllers/amf_controller.rb
app/models/old_way.rb

index 9f38f0dcddde6d768ab5ed273069cdb5abf99067..9ef1fbb6b4a5ed6bbc45f1ec419856c2ca34cb19 100644 (file)
@@ -407,7 +407,7 @@ class AmfController < ApplicationController
         revdates.push(a.timestamp)
         unless revusers.has_key?(a.timestamp.to_i) then revusers[a.timestamp.to_i]=change_user(a) end
         a.nds.each do |n|
-          Node.find(n).old_nodes.collect do |o|
+          Node.find(n).old_nodes.unredacted.collect do |o|
             revdates.push(o.timestamp)
             unless revusers.has_key?(o.timestamp.to_i) then revusers[o.timestamp.to_i]=change_user(o) end
           end
@@ -436,7 +436,7 @@ class AmfController < ApplicationController
 
   def getnode_history(nodeid) #:doc:
     begin 
-      history = Node.find(nodeid).old_nodes.reverse.collect do |old_node|
+      history = Node.find(nodeid).old_nodes.unredacted.reverse.collect do |old_node|
         [old_node.timestamp.succ.strftime("%d %b %Y, %H:%M:%S")] + change_user(old_node)
       end
       return ['node', nodeid, history]
@@ -782,7 +782,7 @@ class AmfController < ApplicationController
       n = Node.find(id)
       v = n.version
       unless timestamp == ''
-        n = OldNode.where("id = ? AND timestamp <= ?", id, timestamp).order("timestamp DESC").first
+        n = OldNode.where("node_id = ? AND timestamp <= ? AND redaction_id is NULL", id, timestamp).order("timestamp DESC").first
       end
 
       if n
index 30bc12cc22f0821881032706daab3f250217f92b..6fea12db27aca58bb2c913b88745b26f8a159eef 100644 (file)
@@ -146,7 +146,7 @@ class OldWay < ActiveRecord::Base
   def get_nodes_revert(timestamp)
     points=[]
     self.nds.each do |n|
-      oldnode = OldNode.where('node_id = ? AND timestamp <= ?', n, timestamp).order("timestamp DESC").first
+      oldnode = OldNode.where('node_id = ? AND timestamp <= ? AND redaction_id is NULL', n, timestamp).order("timestamp DESC").first
       curnode = Node.find(n)
       id = n; reuse = curnode.visible
       if oldnode.lat != curnode.lat or oldnode.lon != curnode.lon or oldnode.tags != curnode.tags then