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