diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 3170aff42..5e25b5061 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -87,8 +87,7 @@ class ApplicationController < ActionController::Base end rescue_from Discourse::ReadOnly do - # can this happen on a not .json format? - render json: failed_json.merge(message: I18n.t("read_only_mode_enabled")) + render status: 405, json: failed_json.merge(message: I18n.t("read_only_mode_enabled")) end def rescue_discourse_actions(message, error) @@ -283,8 +282,8 @@ class ApplicationController < ActionController::Base end def block_if_readonly_mode - return if request.put? && request.fullpath == "/admin/backups/readonly" - raise Discourse::ReadOnly.new unless request.get? || !Discourse.readonly_mode? + return if request.fullpath.start_with?("/admin/backups") + raise Discourse::ReadOnly.new if !request.get? && Discourse.readonly_mode? end def build_not_found_page(status=404, layout=false) diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 41c6b0b00..fab6e5ef6 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -27,6 +27,8 @@ en: backup: operation_already_running: "An operation is currently running. Can't start a new job right now." + read_only_mode_enabled: "The site is in read only mode. Interactions are disabled." + too_many_replies: one: "We're sorry, but new users are temporarily limited to 1 reply in the same topic." other: "We're sorry, but new users are temporarily limited to %{count} replies in the same topic."