Files
discourse/app/controllers/safe_mode_controller.rb
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

45 lines
1.0 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
2016-11-21 16:46:02 +11:00
class SafeModeController < ApplicationController
layout "no_ember"
2018-04-23 14:50:52 -04:00
before_action :ensure_safe_mode_enabled
before_action :force_safe_mode_for_route
2018-04-23 14:50:52 -04:00
skip_before_action :preload_json, :check_xhr
2016-11-21 16:46:02 +11:00
def index
end
def enter
safe_mode = []
2022-08-15 15:15:15 +01:00
safe_mode << "no_themes" if params["no_themes"] == "true"
if params["no_plugins"] == "true"
safe_mode << "no_plugins"
elsif params["no_unofficial_plugins"] == "true"
safe_mode << "no_unofficial_plugins"
elsif params["deprecation_errors"] == "true"
safe_mode << "deprecation_errors"
2022-08-15 15:15:15 +01:00
end
2016-11-21 16:46:02 +11:00
if safe_mode.length > 0
2022-08-15 15:15:15 +01:00
redirect_to path("/?safe_mode=#{safe_mode.join(",")}")
2016-11-21 16:46:02 +11:00
else
flash[:must_select] = true
2016-12-19 18:12:15 +08:00
redirect_to safe_mode_path
2016-11-21 16:46:02 +11:00
end
end
2018-04-23 14:50:52 -04:00
protected
def ensure_safe_mode_enabled
raise Discourse::NotFound unless guardian.can_enable_safe_mode?
2018-04-23 14:50:52 -04:00
end
def force_safe_mode_for_route
2022-08-15 15:15:15 +01:00
request.env[ApplicationController::NO_THEMES] = true
request.env[ApplicationController::NO_PLUGINS] = true
end
2016-11-21 16:46:02 +11:00
end