1 # frozen_string_literal: true
 
   3 xml.tag! "user", :id => user.id,
 
   4                  :display_name => user.display_name,
 
   5                  :account_created => user.created_at.xmlschema do
 
   6   xml.tag! "description", user.description if user.description
 
   7   if current_user && current_user == user && can?(:details, User)
 
   8     xml.tag! "contributor-terms", :agreed => user.terms_agreed.present?,
 
   9                                   :pd => user.consider_pd
 
  11     xml.tag! "contributor-terms", :agreed => user.terms_agreed.present?
 
  13   xml.tag! "img", :href => user_image_url(user) if user.avatar.attached? || user.image_use_gravatar
 
  15     user.roles.each do |role|
 
  19   xml.tag! "changesets", :count => user.changesets.size
 
  20   xml.tag! "traces", :count => user.traces.size
 
  22     xml.tag! "received", :count => user.blocks.size,
 
  23                          :active => user.blocks.active.size
 
  25       xml.tag! "issued", :count => user.blocks_created.size,
 
  26                          :active => user.blocks_created.active.size
 
  29   if current_user && current_user == user && can?(:details, User)
 
  30     if user.home_location?
 
  31       xml.tag! "home", :lat => user.home_lat,
 
  32                        :lon => user.home_lon,
 
  33                        :zoom => user.home_zoom
 
  36       xml.tag! "languages" do
 
  37         user.languages.split(",") { |lang| xml.tag! "lang", lang }
 
  40     xml.tag! "messages" do
 
  41       xml.tag! "received", :count => user.messages.size,
 
  42                            :unread => user.new_messages.size
 
  43       xml.tag! "sent", :count => user.sent_messages.size
 
  45     xml.tag! "email", user.email if scope_enabled?(:read_email)