Class: StompBase::ConsoleController
Defined Under Namespace
Classes: ConsoleBindingHelper
Constant Summary
collapse
- DANGEROUS_PATTERNS =
[
/system\s*\(/i,
/`/,
/%x\{/,
/File\.(delete|unlink)/i,
/FileUtils\.(rm|remove)/i,
/Dir\.(delete|rmdir)/i,
/ActiveRecord.*delete_all/i,
/ActiveRecord.*destroy_all/i,
/drop_table/i,
/exit/i,
/quit/i,
/abort/i,
/fork/i,
/spawn/i,
/eval\s*\(/i,
/instance_eval/i,
/class_eval/i,
/module_eval/i,
/define_method/i,
/remove_method/i,
/undef_method/i,
/const_missing/i,
/autoload/i,
/load\s*\(/i,
/require\s*\(/i,
/Rails\.application\.secrets/i,
/ENV\[.*SECRET/i
].freeze
Instance Method Summary
collapse
Methods included from I18nHelper
#available_locales, #current_locale, #locale_name, #t
Instance Method Details
#execute ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'app/controllers/stomp_base/console_controller.rb', line 44
def execute
command = params[:command]&.strip
session_id = params[:session_id]
command_counter = params[:command_counter]&.to_i || 1
return render_error(I18n.t("stomp_base.console.error")) if command.blank?
if command == "__restart_session__"
clear_session_binding(session_id)
return render json: { success: true, result: "Session restarted", command_counter: 1 }
end
process_console_command(command, session_id, command_counter)
rescue StandardError => e
handle_execution_error(e, command_counter)
end
|
#handle_execution_error(error, command_counter = 1) ⇒ Object
70
71
72
73
|
# File 'app/controllers/stomp_base/console_controller.rb', line 70
def handle_execution_error(error, command_counter = 1)
Rails.logger.error "StompBase Console Error: #{error.message}"
render_error(error.message, command_counter)
end
|
#index ⇒ Object
40
41
42
|
# File 'app/controllers/stomp_base/console_controller.rb', line 40
def index
@console_component = StompBase::Pages::ConsoleComponent.new
end
|
#process_console_command(command, session_id, command_counter) ⇒ Object
62
63
64
65
66
67
68
|
# File 'app/controllers/stomp_base/console_controller.rb', line 62
def process_console_command(command, session_id, command_counter)
Rails.logger.info "StompBase Console Command: #{command}"
return render_dangerous_command_error if dangerous_command?(command)
result = execute_in_rails_console(command, session_id)
render_success(result, command_counter)
end
|