xml.instruct! :xml, :version => "1.0"
xml.osm("version" => API_VERSION, "generator" => GENERATOR) do
- xml.tag! "user", :id => @this_user.id,
- :display_name => @this_user.display_name,
- :account_created => @this_user.creation_time.xmlschema do
- if @this_user.description
- xml.tag! "description", @this_user.description
+ xml.tag! "user", :id => @user.id,
+ :display_name => @user.display_name,
+ :account_created => @user.creation_time.xmlschema do
+ xml.tag! "description", @user.description if @user.description
+ if current_user && current_user == @user
+ xml.tag! "contributor-terms", :agreed => @user.terms_agreed.present?,
+ :pd => @user.consider_pd
+ else
+ xml.tag! "contributor-terms", :agreed => @user.terms_agreed.present?
end
- xml.tag! "contributor-terms",
- :agreed => !!@this_user.terms_agreed,
- :pd => !!@this_user.consider_pd
- if @this_user.image.file?
- xml.tag! "img", :href => "http://#{SERVER_URL}#{@this_user.image.url}"
+ xml.tag! "img", :href => user_image_url(@user, :size => 256) if @user.image.file? || @user.image_use_gravatar
+ xml.tag! "roles" do
+ @user.roles.each do |role|
+ xml.tag! role.role
+ end
+ end
+ xml.tag! "changesets", :count => @user.changesets.size
+ xml.tag! "traces", :count => @user.traces.size
+ xml.tag! "blocks" do
+ xml.tag! "received", :count => @user.blocks.size,
+ :active => @user.blocks.active.size
+ if @user.moderator?
+ xml.tag! "issued", :count => @user.blocks_created.size,
+ :active => @user.blocks_created.active.size
+ end
end
- if @user && @user == @this_user
- if @this_user.home_lat and @this_user.home_lon
- xml.tag! "home", :lat => @this_user.home_lat,
- :lon => @this_user.home_lon,
- :zoom => @this_user.home_zoom
- end
- if @this_user.languages
+ if current_user && current_user == @user
+ if @user.home_lat && @user.home_lon
+ xml.tag! "home", :lat => @user.home_lat,
+ :lon => @user.home_lon,
+ :zoom => @user.home_zoom
+ end
+ if @user.languages
xml.tag! "languages" do
- @this_user.languages.split(",") { |lang| xml.tag! "lang", lang }
+ @user.languages.split(",") { |lang| xml.tag! "lang", lang }
end
end
+ xml.tag! "messages" do
+ xml.tag! "received", :count => @user.messages.size,
+ :unread => @user.new_messages.size
+ xml.tag! "sent", :count => @user.sent_messages.size
+ end
end
end
end