commit: 99f962ba731f67050a914bb5b9a245869531ebd1
parent: 2471796d75d6d7b1eb801faba65d16ff7b825adc
Author: ThibG <thib@sitedethib.com>
Date: Wed, 3 Jan 2018 04:57:57 +0100
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
Diffstat:
1 file changed, 7 insertions(+), 0 deletions(-)
diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb
@@ -10,6 +10,7 @@ class StatusesController < ApplicationController
before_action :set_link_headers
before_action :check_account_suspension
before_action :redirect_to_original, only: [:show]
+ before_action { response.headers['Vary'] = 'Accept' }
def show
respond_to do |format|
@@ -25,6 +26,12 @@ class StatusesController < ApplicationController
serializer: ActivityPub::NoteSerializer,
adapter: ActivityPub::Adapter,
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