X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/ce829bcc7cead94384bfec1c6e120d1ddecd4fc1..3ce4de1295ecec082313740a3cdf25c2831164f7:/app/controllers/changeset_controller.rb diff --git a/app/controllers/changeset_controller.rb b/app/controllers/changeset_controller.rb index 033d89e4e..947732fb1 100644 --- a/app/controllers/changeset_controller.rb +++ b/app/controllers/changeset_controller.rb @@ -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,32 +260,27 @@ 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 if params[:friends] - user = @user - if user - friend_ids = [] - user.friends.each do |friend| - friend_user = User.find(friend.friend_user_id) - if friend_user.data_public? - friend_ids << friend.friend_user_id - end - end - if friend_ids.length > 0 - conditions = cond_merge conditions, ['user_id in (?)', friend_ids] - else - conditions = cond_merge conditions, ['false'] - end + if @user + changesets = changesets.where(:user_id => @user.friend_users.public) + elsif request.format == :html + require_user + return + end + end + + if params[:nearby] + if @user + changesets = changesets.where(:user_id => @user.nearby) 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 @@ -303,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 @@ -331,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 ##