Skip to content

Commit

Permalink
Move to config.web_console.permissions
Browse files Browse the repository at this point in the history
Moving away from the white listing term. We'll still support
`config.web_console.whitelisted_ips` for backwards compatibility,
though. Without it, we'll break a lot of installs.
  • Loading branch information
gsamokovarov committed Apr 29, 2019
1 parent 7d26040 commit 61ce65b
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
8 changes: 4 additions & 4 deletions README.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -59,27 +59,27 @@ have multiple ones, `WebConsole::DoubleRenderError` will be raised.
_Web Console_ allows you to execute arbitrary code on the server. Therefore, be
very careful who you give access to.

### config.web_console.whitelisted_ips
### config.web_console.permissions

By default, only requests coming from IPv4 and IPv6 localhosts are allowed.

`config.web_console.whitelisted_ips` lets you control which IP's have access to
`config.web_console.permissions` lets you control which IP's have access to
the console.

You can whitelist single IP's or whole networks. Say you want to share your
console with `192.168.0.100`:

```ruby
class Application < Rails::Application
config.web_console.whitelisted_ips = '192.168.0.100'
config.web_console.permissions = '192.168.0.100'
end
```

If you want to whitelist the whole private network:

```ruby
Rails.application.configure do
config.web_console.whitelisted_ips = '192.168.0.0/16'
config.web_console.permissions = '192.168.0.0/16'
end
```

Expand Down
6 changes: 3 additions & 3 deletions lib/web_console/railtie.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
module WebConsole
class Railtie < ::Rails::Railtie
config.web_console = ActiveSupport::OrderedOptions.new
config.web_console.whitelisted_ips = %w( 127.0.0.1 ::1 )
config.web_console.permissions = %w( 127.0.0.1 ::1 )

initializer "web_console.initialize" do
require "bindex"
Expand Down Expand Up @@ -53,8 +53,8 @@ class Railtie < ::Rails::Railtie
end

initializer "web_console.permissions" do
if whitelisted_ips = config.web_console.whitelisted_ips
Request.permissions = Permissions.new(whitelisted_ips)
if permissions = config.web_console.permissions || config.web_console.whitelisted_ips
Request.permissions = Permissions.new(permissions)
end
end

Expand Down
8 changes: 4 additions & 4 deletions test/web_console/railtie_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ class RailtieTest < ActiveSupport::TestCase
Middleware.mount_point = "/__web_console"
end

test "config.whitelisted_ips sets whitelisted networks" do
test "config.permissions sets whitelisted networks" do
new_uninitialized_app do |app|
app.config.web_console.whitelisted_ips = %w( 172.16.0.0/12 192.168.0.0/16 )
app.config.web_console.permissions = %w( 172.16.0.0/12 192.168.0.0/16 )
app.initialize!

1.upto(255).each do |n|
Expand All @@ -21,9 +21,9 @@ class RailtieTest < ActiveSupport::TestCase
end
end

test "config.whitelisted_ips always includes localhost" do
test "config.permissions always includes localhost" do
new_uninitialized_app do |app|
app.config.web_console.whitelisted_ips = "8.8.8.8"
app.config.web_console.permissions = "8.8.8.8"
app.initialize!

assert_includes Request.permissions, "127.0.0.1"
Expand Down

0 comments on commit 61ce65b

Please sign in to comment.