Add `roles` attribute to Account entities in REST API (#23255)

This commit is contained in:
Claire 2023-01-25 19:55:40 +01:00 committed by GitHub
parent e5ae75bf6a
commit 13a2abacc8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 5 deletions

View File

@ -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 }

View File

@ -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

View File

@ -1,5 +1,5 @@
Fabricator(:user_role) do
name "MyString"
color "MyString"
permissions ""
color ""
permissions 0
end