Add roles attribute to Account entities in REST API (#23255)
				
					
				
			This commit is contained in:
		@@ -117,7 +117,7 @@ class Status < ApplicationRecord
 | 
			
		||||
                   :tags,
 | 
			
		||||
                   :preview_cards,
 | 
			
		||||
                   :preloadable_poll,
 | 
			
		||||
                   account: [:account_stat, :user],
 | 
			
		||||
                   account: [:account_stat, user: :role],
 | 
			
		||||
                   active_mentions: { account: :account_stat },
 | 
			
		||||
                   reblog: [
 | 
			
		||||
                     :application,
 | 
			
		||||
@@ -127,7 +127,7 @@ class Status < ApplicationRecord
 | 
			
		||||
                     :conversation,
 | 
			
		||||
                     :status_stat,
 | 
			
		||||
                     :preloadable_poll,
 | 
			
		||||
                     account: [:account_stat, :user],
 | 
			
		||||
                     account: [:account_stat, user: :role],
 | 
			
		||||
                     active_mentions: { account: :account_stat },
 | 
			
		||||
                   ],
 | 
			
		||||
                   thread: { account: :account_stat }
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,16 @@ class REST::AccountSerializer < ActiveModel::Serializer
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  class RoleSerializer < ActiveModel::Serializer
 | 
			
		||||
    attributes :id, :name, :color
 | 
			
		||||
 | 
			
		||||
    def id
 | 
			
		||||
      object.id.to_s
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  has_many :roles, serializer: RoleSerializer, if: :local?
 | 
			
		||||
 | 
			
		||||
  class FieldSerializer < ActiveModel::Serializer
 | 
			
		||||
    include FormattingHelper
 | 
			
		||||
 | 
			
		||||
@@ -114,6 +124,14 @@ class REST::AccountSerializer < ActiveModel::Serializer
 | 
			
		||||
    object.silenced?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def roles
 | 
			
		||||
    if object.suspended?
 | 
			
		||||
      []
 | 
			
		||||
    else
 | 
			
		||||
      [object.user.role].compact.filter { |role| role.highlighted? }
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def noindex
 | 
			
		||||
    object.user_prefers_noindex?
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
Fabricator(:user_role) do
 | 
			
		||||
  name        "MyString"
 | 
			
		||||
  color       "MyString"
 | 
			
		||||
  permissions ""
 | 
			
		||||
  color       ""
 | 
			
		||||
  permissions 0
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user