Add outbox attribute to instance actor (#14721)
It's not useful for now, but it's required by ActivityPub
This commit is contained in:
		@@ -20,9 +20,9 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
 | 
			
		||||
  def outbox_presenter
 | 
			
		||||
    if page_requested?
 | 
			
		||||
      ActivityPub::CollectionPresenter.new(
 | 
			
		||||
        id: account_outbox_url(@account, page_params),
 | 
			
		||||
        id: outbox_url(page_params),
 | 
			
		||||
        type: :ordered,
 | 
			
		||||
        part_of: account_outbox_url(@account),
 | 
			
		||||
        part_of: outbox_url,
 | 
			
		||||
        prev: prev_page,
 | 
			
		||||
        next: next_page,
 | 
			
		||||
        items: @statuses
 | 
			
		||||
@@ -32,12 +32,20 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
 | 
			
		||||
        id: account_outbox_url(@account),
 | 
			
		||||
        type: :ordered,
 | 
			
		||||
        size: @account.statuses_count,
 | 
			
		||||
        first: account_outbox_url(@account, page: true),
 | 
			
		||||
        last: account_outbox_url(@account, page: true, min_id: 0)
 | 
			
		||||
        first: outbox_url(page: true),
 | 
			
		||||
        last: outbox_url(page: true, min_id: 0)
 | 
			
		||||
      )
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def outbox_url(**kwargs)
 | 
			
		||||
    if params[:account_username].present?
 | 
			
		||||
      account_outbox_url(@account, **kwargs)
 | 
			
		||||
    else
 | 
			
		||||
      instance_actor_outbox_url(**kwargs)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def next_page
 | 
			
		||||
    account_outbox_url(@account, page: true, max_id: @statuses.last.id) if @statuses.size == LIMIT
 | 
			
		||||
  end
 | 
			
		||||
@@ -65,4 +73,8 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
 | 
			
		||||
  def page_params
 | 
			
		||||
    { page: true, max_id: params[:max_id], min_id: params[:min_id] }.compact
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def set_account
 | 
			
		||||
    @account = params[:account_username].present? ? Account.find_local!(username_param) : Account.representative
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,6 @@ class InstanceActorsController < ApplicationController
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def restrict_fields_to
 | 
			
		||||
    %i(id type preferred_username inbox public_key endpoints url manually_approves_followers)
 | 
			
		||||
    %i(id type preferred_username inbox outbox public_key endpoints url manually_approves_followers)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def outbox
 | 
			
		||||
    account_outbox_url(object)
 | 
			
		||||
    object.instance_actor? ? instance_actor_outbox_url : account_outbox_url(object)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def featured
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,7 @@ Rails.application.routes.draw do
 | 
			
		||||
 | 
			
		||||
  resource :instance_actor, path: 'actor', only: [:show] do
 | 
			
		||||
    resource :inbox, only: [:create], module: :activitypub
 | 
			
		||||
    resource :outbox, only: [:show], module: :activitypub
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  devise_scope :user do
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user