Browse Source

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

closed-social-glitch-2
Claire 1 year ago
committed by GitHub
parent
commit
13a2abacc8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 5 deletions
  1. +2
    -2
      app/models/status.rb
  2. +18
    -0
      app/serializers/rest/account_serializer.rb
  3. +3
    -3
      spec/fabricators/user_role_fabricator.rb

+ 2
- 2
app/models/status.rb View File

@ -117,7 +117,7 @@ class Status < ApplicationRecord
:tags, :tags,
:preview_cards, :preview_cards,
:preloadable_poll, :preloadable_poll,
account: [:account_stat, :user],
account: [:account_stat, user: :role],
active_mentions: { account: :account_stat }, active_mentions: { account: :account_stat },
reblog: [ reblog: [
:application, :application,
@ -127,7 +127,7 @@ class Status < ApplicationRecord
:conversation, :conversation,
:status_stat, :status_stat,
:preloadable_poll, :preloadable_poll,
account: [:account_stat, :user],
account: [:account_stat, user: :role],
active_mentions: { account: :account_stat }, active_mentions: { account: :account_stat },
], ],
thread: { account: :account_stat } thread: { account: :account_stat }

+ 18
- 0
app/serializers/rest/account_serializer.rb View File

@ -26,6 +26,16 @@ class REST::AccountSerializer < ActiveModel::Serializer
end end
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 class FieldSerializer < ActiveModel::Serializer
include FormattingHelper include FormattingHelper
@ -114,6 +124,14 @@ class REST::AccountSerializer < ActiveModel::Serializer
object.silenced? object.silenced?
end end
def roles
if object.suspended?
[]
else
[object.user.role].compact.filter { |role| role.highlighted? }
end
end
def noindex def noindex
object.user_prefers_noindex? object.user_prefers_noindex?
end end

+ 3
- 3
spec/fabricators/user_role_fabricator.rb View File

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

Loading…
Cancel
Save