Allow retrieval of private statuses (single or in outbox) using HTTP signatures (#6225)

master
puckipedia 6 years ago committed by Eugen Rochko
parent 04fef7b888
commit 8e4cf6282b
  1. 4
      app/controllers/activitypub/outboxes_controller.rb
  2. 11
      app/controllers/concerns/signature_authentication.rb
  3. 1
      app/controllers/statuses_controller.rb

@ -1,10 +1,12 @@
# frozen_string_literal: true
class ActivityPub::OutboxesController < Api::BaseController
include SignatureVerification
before_action :set_account
def show
@statuses = @account.statuses.permitted_for(@account, current_account).paginate_by_max_id(20, params[:max_id], params[:since_id])
@statuses = @account.statuses.permitted_for(@account, signed_request_account).paginate_by_max_id(20, params[:max_id], params[:since_id])
@statuses = cache_collection(@statuses, Status)
render json: outbox_presenter, serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json'

@ -0,0 +1,11 @@
# frozen_string_literal: true
module SignatureAuthentication
extend ActiveSupport::Concern
include SignatureVerification
def current_account
super || signed_request_account
end
end

@ -1,6 +1,7 @@
# frozen_string_literal: true
class StatusesController < ApplicationController
include SignatureAuthentication
include Authorization
layout 'public'

Loading…
Cancel
Save