Chris@1295: api.user do Chris@1295: api.id @user.id Chris@1295: api.login @user.login if User.current.admin? || (User.current == @user) Chris@1295: api.firstname @user.firstname Chris@1295: api.lastname @user.lastname Chris@1295: api.mail @user.mail if User.current.admin? || !@user.pref.hide_mail Chris@1295: api.created_on @user.created_on Chris@1295: api.last_login_on @user.last_login_on Chris@1295: api.api_key @user.api_key if User.current.admin? || (User.current == @user) Chris@1295: Chris@1295: render_api_custom_values @user.visible_custom_field_values, api Chris@1295: Chris@1295: api.array :groups do |groups| Chris@1295: @user.groups.each do |group| Chris@1295: api.group :id => group.id, :name => group.name Chris@1295: end Chris@1295: end if User.current.admin? && include_in_api_response?('groups') Chris@1295: Chris@1295: api.array :memberships do Chris@1295: @memberships.each do |membership| Chris@1295: api.membership do Chris@1295: api.id membership.id Chris@1295: api.project :id => membership.project.id, :name => membership.project.name Chris@1295: api.array :roles do Chris@1295: membership.member_roles.each do |member_role| Chris@1295: if member_role.role Chris@1295: attrs = {:id => member_role.role.id, :name => member_role.role.name} Chris@1295: attrs.merge!(:inherited => true) if member_role.inherited_from.present? Chris@1295: api.role attrs Chris@1295: end Chris@1295: end Chris@1295: end Chris@1295: end if membership.project Chris@1295: end Chris@1295: end if include_in_api_response?('memberships') && @memberships Chris@1295: end