Allow HTTP caching of json view of public statuses (#6115)

* Allow HTTP caching of json view of public statuses

HTML views are not cached as they can contain private statuses as well

* Disable session cookies for ActivityPub json rendering of public toots
pull/6166/head
ThibG 2018-01-03 04:57:57 +01:00 committed by Eugen Rochko
parent 2471796d75
commit 99f962ba73
1 changed files with 7 additions and 0 deletions

View File

@ -10,6 +10,7 @@ class StatusesController < ApplicationController
before_action :set_link_headers before_action :set_link_headers
before_action :check_account_suspension before_action :check_account_suspension
before_action :redirect_to_original, only: [:show] before_action :redirect_to_original, only: [:show]
before_action { response.headers['Vary'] = 'Accept' }
def show def show
respond_to do |format| respond_to do |format|
@ -25,6 +26,12 @@ class StatusesController < ApplicationController
serializer: ActivityPub::NoteSerializer, serializer: ActivityPub::NoteSerializer,
adapter: ActivityPub::Adapter, adapter: ActivityPub::Adapter,
content_type: 'application/activity+json' content_type: 'application/activity+json'
# Allow HTTP caching for 3 minutes if the status is public
unless @stream_entry.hidden?
request.session_options[:skip] = true
expires_in(3.minutes, public: true)
end
end end
end end
end end