Merge tag 'v2.9.2' into instance_only_statuses

This commit is contained in:
Renato "Lond" Cerqueira
2019-06-25 19:44:59 +02:00
534 changed files with 12629 additions and 7877 deletions

View File

@ -31,6 +31,7 @@ class InitialStateSerializer < ActiveModel::Serializer
store[:display_media] = object.current_account.user.setting_display_media
store[:expand_spoilers] = object.current_account.user.setting_expand_spoilers
store[:reduce_motion] = object.current_account.user.setting_reduce_motion
store[:advanced_layout] = object.current_account.user.setting_advanced_layout
store[:is_staff] = object.current_account.user.staff?
end
@ -60,7 +61,7 @@ class InitialStateSerializer < ActiveModel::Serializer
end
def media_attachments
{ accept_content_types: MediaAttachment::IMAGE_FILE_EXTENSIONS + MediaAttachment::VIDEO_FILE_EXTENSIONS + MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES }
{ accept_content_types: MediaAttachment.supported_file_extensions + MediaAttachment.supported_mime_types }
end
private

View File

@ -0,0 +1,77 @@
# frozen_string_literal: true
class REST::Admin::AccountSerializer < ActiveModel::Serializer
attributes :id, :username, :domain, :created_at,
:email, :ip, :role, :confirmed, :suspended,
:silenced, :disabled, :approved, :locale,
:invite_request
attribute :created_by_application_id, if: :created_by_application?
attribute :invited_by_account_id, if: :invited?
has_one :account, serializer: REST::AccountSerializer
def id
object.id.to_s
end
def email
object.user_email
end
def ip
object.user_current_sign_in_ip.to_s.presence
end
def role
object.user_role
end
def suspended
object.suspended?
end
def silenced
object.silenced?
end
def confirmed
object.user_confirmed?
end
def disabled
object.user_disabled?
end
def approved
object.user_approved?
end
def account
object
end
def locale
object.user_locale
end
def created_by_application_id
object.user&.created_by_application_id&.to_s&.presence
end
def invite_request
object.user&.invite_request&.text
end
def invited_by_account_id
object.user&.invite&.user&.account_id&.to_s&.presence
end
def invited?
object.user&.invited?
end
def created_by_application?
object.user&.created_by_application_id&.present?
end
end

View File

@ -0,0 +1,16 @@
# frozen_string_literal: true
class REST::Admin::ReportSerializer < ActiveModel::Serializer
attributes :id, :action_taken, :comment, :created_at, :updated_at
has_one :account, serializer: REST::Admin::AccountSerializer
has_one :target_account, serializer: REST::Admin::AccountSerializer
has_one :assigned_account, serializer: REST::Admin::AccountSerializer
has_one :action_taken_by_account, serializer: REST::Admin::AccountSerializer
has_many :statuses, serializer: REST::StatusSerializer
def id
object.id.to_s
end
end

View File

@ -3,9 +3,9 @@
class REST::InstanceSerializer < ActiveModel::Serializer
include RoutingHelper
attributes :uri, :title, :description, :email,
attributes :uri, :title, :short_description, :description, :email,
:version, :urls, :stats, :thumbnail,
:languages, :registrations
:languages, :registrations, :approval_required
has_one :contact_account, serializer: REST::AccountSerializer
@ -19,6 +19,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer
Setting.site_title
end
def short_description
Setting.site_short_description
end
def description
Setting.site_description
end
@ -55,6 +59,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer
Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
end
def approval_required
Setting.registrations_mode == 'approved'
end
private
def instance_presenter

View File

@ -3,7 +3,7 @@
class REST::StatusSerializer < ActiveModel::Serializer
attributes :id, :created_at, :in_reply_to_id, :in_reply_to_account_id,
:sensitive, :spoiler_text, :visibility, :language,
:uri, :content, :url, :replies_count, :reblogs_count,
:uri, :url, :replies_count, :reblogs_count,
:favourites_count, :local_only
attribute :favourited, if: :current_user?
@ -11,6 +11,9 @@ class REST::StatusSerializer < ActiveModel::Serializer
attribute :muted, if: :current_user?
attribute :pinned, if: :pinnable?
attribute :content, unless: :source_requested?
attribute :text, if: :source_requested?
belongs_to :reblog, serializer: REST::StatusSerializer
belongs_to :application, if: :show_application?
belongs_to :account, serializer: REST::AccountSerializer
@ -105,6 +108,10 @@ class REST::StatusSerializer < ActiveModel::Serializer
%w(public unlisted).include?(object.visibility)
end
def source_requested?
instance_options[:source_requested]
end
def ordered_mentions
object.active_mentions.to_a.sort_by(&:id)
end