diff options
author | ThibG <thib@sitedethib.com> | 2018-01-03 04:57:57 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2018-01-03 04:57:57 +0100 |
commit | 99f962ba731f67050a914bb5b9a245869531ebd1 (patch) | |
tree | 5318b49d73ac78ffae95c0f5d3fe08531ec64b1b | |
parent | 2471796d75d6d7b1eb801faba65d16ff7b825adc (diff) |
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
-rw-r--r-- | app/controllers/statuses_controller.rb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index e8a360fb5..c00b9f034 100644 --- 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 |