Fix /api/v1/instance/domain_blocks being unconditionally cached (#24662)
This commit is contained in:
		@@ -6,10 +6,15 @@ class Api::V1::Instances::DomainBlocksController < Api::BaseController
 | 
			
		||||
  before_action :require_enabled_api!
 | 
			
		||||
  before_action :set_domain_blocks
 | 
			
		||||
 | 
			
		||||
  vary_by ''
 | 
			
		||||
  vary_by '', if: -> { Setting.show_domain_blocks == 'all' }
 | 
			
		||||
 | 
			
		||||
  def index
 | 
			
		||||
    cache_even_if_authenticated!
 | 
			
		||||
    if Setting.show_domain_blocks == 'all'
 | 
			
		||||
      cache_even_if_authenticated!
 | 
			
		||||
    else
 | 
			
		||||
      cache_if_unauthenticated!
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    render json: @domain_blocks, each_serializer: REST::DomainBlockSerializer, with_comment: (Setting.show_domain_blocks_rationale == 'all' || (Setting.show_domain_blocks_rationale == 'users' && user_signed_in?))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -156,8 +156,8 @@ module CacheConcern
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  class_methods do
 | 
			
		||||
    def vary_by(value)
 | 
			
		||||
      before_action do |controller|
 | 
			
		||||
    def vary_by(value, **kwargs)
 | 
			
		||||
      before_action(**kwargs) do |controller|
 | 
			
		||||
        response.headers['Vary'] = value.respond_to?(:call) ? controller.instance_exec(&value) : value
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user