1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
# frozen_string_literal: true
module WebConsole
# Noisy wrapper around +Request+.
#
# If any calls to +permitted?+ and +acceptable_content_type?+
# return false, an info log message will be displayed in users' logs.
class WhinyRequest < SimpleDelegator
def permitted?
whine_unless request.permitted? do
"Cannot render console from #{request.strict_remote_ip}! " \
"Allowed networks: #{request.permissions}"
end
end
private
def whine_unless(condition)
unless condition
logger.info { yield }
end
condition
end
def logger
env["action_dispatch.logger"] || WebConsole.logger
end
def request
__getobj__
end
end
end
|