FIX: add ReadOnly hear to /srv/status
This commit is contained in:
parent
16ef060a76
commit
0d41d58d27
|
@ -14,6 +14,7 @@ require_dependency 'global_path'
|
|||
require_dependency 'secure_session'
|
||||
require_dependency 'topic_query'
|
||||
require_dependency 'hijack'
|
||||
require_dependency 'read_only'
|
||||
|
||||
class ApplicationController < ActionController::Base
|
||||
include CurrentUser
|
||||
|
@ -21,6 +22,7 @@ class ApplicationController < ActionController::Base
|
|||
include JsonError
|
||||
include GlobalPath
|
||||
include Hijack
|
||||
include ReadOnly
|
||||
|
||||
attr_reader :theme_ids
|
||||
|
||||
|
@ -80,10 +82,6 @@ class ApplicationController < ActionController::Base
|
|||
(has_escaped_fragment? || CrawlerDetection.crawler?(request.user_agent) || params.key?("print"))
|
||||
end
|
||||
|
||||
def add_readonly_header
|
||||
response.headers['Discourse-Readonly'] = 'true' if @readonly_mode
|
||||
end
|
||||
|
||||
def perform_refresh_session
|
||||
refresh_session(current_user) unless @readonly_mode
|
||||
end
|
||||
|
@ -508,10 +506,6 @@ class ApplicationController < ActionController::Base
|
|||
|
||||
private
|
||||
|
||||
def check_readonly_mode
|
||||
@readonly_mode = Discourse.readonly_mode?
|
||||
end
|
||||
|
||||
def locale_from_header
|
||||
begin
|
||||
# Rails I18n uses underscores between the locale and the region; the request
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require "read_only"
|
||||
|
||||
class ForumsController < ActionController::Base
|
||||
include ReadOnly
|
||||
|
||||
before_action :check_readonly_mode
|
||||
after_action :add_readonly_header
|
||||
|
||||
def status
|
||||
if $shutdown
|
||||
render plain: 'shutting down', status: 500
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module ReadOnly
|
||||
|
||||
def check_readonly_mode
|
||||
@readonly_mode = Discourse.readonly_mode?
|
||||
end
|
||||
|
||||
def add_readonly_header
|
||||
response.headers['Discourse-Readonly'] = 'true' if @readonly_mode
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe ForumsController do
|
||||
|
||||
describe "read only header" do
|
||||
it "returns no read only header by default" do
|
||||
get "/srv/status"
|
||||
expect(response.status).to eq(200)
|
||||
expect(response.headers['Discourse-Readonly']).to eq(nil)
|
||||
end
|
||||
|
||||
it "returns a readonly header if the site is read only" do
|
||||
Discourse.received_readonly!
|
||||
get "/srv/status"
|
||||
expect(response.status).to eq(200)
|
||||
expect(response.headers['Discourse-Readonly']).to eq('true')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue