Skip to content

Commit

Permalink
Make sure private toots remain private and do not end up in HTTP cach…
Browse files Browse the repository at this point in the history
  • Loading branch information
ClearlyClaire authored and Gargron committed Jan 4, 2018
1 parent 17d8a24 commit c237296
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
3 changes: 2 additions & 1 deletion app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,15 @@ def respond_with_error(code)

def render_cached_json(cache_key, **options)
options[:expires_in] ||= 3.minutes
options[:public] ||= true
cache_key = cache_key.join(':') if cache_key.is_a?(Enumerable)
content_type = options.delete(:content_type) || 'application/json'

data = Rails.cache.fetch(cache_key, { raw: true }.merge(options)) do
yield.to_json
end

expires_in options[:expires_in], public: true
expires_in options[:expires_in], public: options[:public]
render json: data, content_type: content_type
end

Expand Down
4 changes: 2 additions & 2 deletions app/controllers/statuses_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def show
format.json do
skip_session! unless @stream_entry.hidden?

render_cached_json(['activitypub', 'note', @status.cache_key], content_type: 'application/activity+json') do
render_cached_json(['activitypub', 'note', @status.cache_key], content_type: 'application/activity+json', public: !@stream_entry.hidden?) do
ActiveModelSerializers::SerializableResource.new(@status, serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter)
end
end
Expand All @@ -34,7 +34,7 @@ def show
def activity
skip_session!

render_cached_json(['activitypub', 'activity', @status.cache_key], content_type: 'application/activity+json') do
render_cached_json(['activitypub', 'activity', @status.cache_key], content_type: 'application/activity+json', public: !@stream_entry.hidden?) do
ActiveModelSerializers::SerializableResource.new(@status, serializer: ActivityPub::ActivitySerializer, adapter: ActivityPub::Adapter)
end
end
Expand Down

0 comments on commit c237296

Please sign in to comment.