api.user do api.id @user.id api.login @user.login api.admin @user.admin? if User.current.admin? || (User.current == @user) api.firstname @user.firstname api.lastname @user.lastname api.mail @user.mail if User.current.admin? || !@user.pref.hide_mail api.created_on @user.created_on api.updated_on @user.updated_on api.last_login_on @user.last_login_on api.passwd_changed_on @user.passwd_changed_on api.avatar_url gravatar_url(@user.mail, {rating: nil, size: nil, default: Setting.gravatar_default}) if @user.mail && Setting.gravatar_enabled? api.twofa_scheme @user.twofa_scheme if User.current.admin? || (User.current == @user) api.api_key @user.api_key if User.current.admin? || (User.current == @user) api.status @user.status if User.current.admin? render_api_custom_values @user.visible_custom_field_values, api api.auth_source do api.id @user.auth_source.id api.name @user.auth_source.name end if User.current.admin? && include_in_api_response?('auth_source') && @user.auth_source.present? api.array :groups do |groups| @user.groups.each do |group| api.group :id => group.id, :name => group.name end end if User.current.admin? && include_in_api_response?('groups') api.array :memberships do @memberships.each do |membership| api.membership do api.id membership.id api.project :id => membership.project.id, :name => membership.project.name api.array :roles do membership.member_roles.each do |member_role| if member_role.role attrs = {:id => member_role.role.id, :name => member_role.role.name} attrs.merge!(:inherited => true) if member_role.inherited_from.present? api.role attrs end end end end if membership.project end end if include_in_api_response?('memberships') && @memberships end