mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-23 15:48:43 -05:00
Don't enable Cache-Control if the site has restricted access.
This commit is contained in:
parent
0b6b63f24a
commit
8d568b05c4
2 changed files with 22 additions and 4 deletions
|
@ -135,14 +135,33 @@ class ApplicationController < ActionController::Base
|
|||
render json: MultiJson.dump(obj)
|
||||
end
|
||||
|
||||
def can_cache_content?
|
||||
# Don't cache unless we're in production mode
|
||||
return false unless Rails.env.production?
|
||||
|
||||
# Don't cache logged in users
|
||||
return false if current_user.present?
|
||||
|
||||
# Don't cache if there's restricted access
|
||||
return false if SiteSetting.restrict_access?
|
||||
|
||||
true
|
||||
end
|
||||
|
||||
# Our custom cache method
|
||||
def discourse_expires_in(time_length)
|
||||
return unless can_cache_content?
|
||||
expires_in time_length, public: true
|
||||
end
|
||||
|
||||
# Helper method - if no logged in user (anonymous), use Rails' conditional GET
|
||||
# support. Should be very fast behind a cache.
|
||||
def anonymous_etag(*args)
|
||||
if current_user.blank? and Rails.env.production?
|
||||
if can_cache_content?
|
||||
yield if stale?(*args)
|
||||
|
||||
# Add a one minute expiry
|
||||
expires_in 1.minute, :public => true
|
||||
expires_in time_length, public: true
|
||||
else
|
||||
yield
|
||||
end
|
||||
|
|
|
@ -58,8 +58,7 @@ class ListController < ApplicationController
|
|||
draft = Draft.get(current_user, list.draft_key, list.draft_sequence) if current_user
|
||||
list.draft = draft
|
||||
|
||||
# Add expiry of 1 minute for anonymous
|
||||
expires_in 1.minute, :public => true if current_user.blank?
|
||||
discourse_expires_in 1.minute
|
||||
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
|
|
Loading…
Reference in a new issue