Add roles attribute to Account entities in REST API (#23255)
				
					
				
			This commit is contained in:
		
							parent
							
								
									e5ae75bf6a
								
							
						
					
					
						commit
						13a2abacc8
					
				
					 3 changed files with 23 additions and 5 deletions
				
			
		|  | @ -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 "" | ||||
| end | ||||
|   color       "" | ||||
|   permissions 0 | ||||
| end | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue