]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/changeset_controller.rb
Error in a changeset feed is requested for a non-existent user
[rails.git] / app / controllers / changeset_controller.rb
index 941c54d499fd27e5b00bb95745def51d9dd83a5f..947732fb1a15cb7778d772165d787f5397846170 100644 (file)
@@ -143,10 +143,11 @@ class ChangesetController < ApplicationController
   def download
     changeset = Changeset.find(params[:id])
     
-    # get all the elements in the changeset and stick them in a big array.
-    elements = [changeset.old_nodes, 
-                changeset.old_ways, 
-                changeset.old_relations].flatten
+    # get all the elements in the changeset which haven't been redacted
+    # and stick them in a big array.
+    elements = [changeset.old_nodes.unredacted, 
+                changeset.old_ways.unredacted, 
+                changeset.old_relations.unredacted].flatten
     
     # sort the elements by timestamp and version number, as this is the 
     # almost sensible ordering available. this would be much nicer if 
@@ -259,10 +260,8 @@ class ChangesetController < ApplicationController
           else
             changesets = changesets.where("false")
           end
-        elsif request.format == :html
-          @title = t 'user.no_such_user.title'
-          @not_found_user = params[:display_name]
-          render :template => 'user/no_such_user', :status => :not_found
+        else
+          render_unknown_user params[:display_name]
           return
         end
       end
@@ -271,8 +270,17 @@ class ChangesetController < ApplicationController
         if @user
           changesets = changesets.where(:user_id => @user.friend_users.public)
         elsif request.format == :html
-          @title = t 'user.no_such_user.title'
-          render :template => 'user/no_such_user', :status => :not_found
+          require_user
+          return
+        end
+      end
+
+      if params[:nearby]
+        if @user
+          changesets = changesets.where(:user_id => @user.nearby)
+        elsif request.format == :html
+          require_user
+          return
         end
       end
 
@@ -291,10 +299,14 @@ class ChangesetController < ApplicationController
         user_link = render_to_string :partial => "user", :object => user
       end
       
-      if params[:friends] and user
+      if params[:friends] and @user
         @title =  t 'changeset.list.title_friend'
         @heading =  t 'changeset.list.heading_friend'
         @description = t 'changeset.list.description_friend'
+      elsif params[:nearby] and @user
+        @title = t 'changeset.list.title_nearby'
+        @heading = t 'changeset.list.heading_nearby'
+        @description = t 'changeset.list.description_nearby'
       elsif user and bbox
         @title =  t 'changeset.list.title_user_bbox', :user => user.display_name, :bbox => bbox.to_s
         @heading =  t 'changeset.list.heading_user_bbox', :user => user.display_name, :bbox => bbox.to_s
@@ -319,9 +331,9 @@ class ChangesetController < ApplicationController
       @bbox = bbox
       
       @edits = changesets.order("changesets.created_at DESC").offset((@page - 1) * @page_size).limit(@page_size).preload(:user, :changeset_tags)
-    end
 
-    render :action => :list
+      render :action => :list
+    end
   end
 
   ##