Browse Source

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

pull/4/head
puckipedia 6 years ago
committed by Eugen Rochko
parent
commit
8e4cf6282b
3 changed files with 15 additions and 1 deletions
  1. +3
    -1
      app/controllers/activitypub/outboxes_controller.rb
  2. +11
    -0
      app/controllers/concerns/signature_authentication.rb
  3. +1
    -0
      app/controllers/statuses_controller.rb

+ 3
- 1
app/controllers/activitypub/outboxes_controller.rb View File

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

+ 11
- 0
app/controllers/concerns/signature_authentication.rb View File

@ -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
- 0
app/controllers/statuses_controller.rb View File

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

Loading…
Cancel
Save