Class: Rack::IpWhitelist
- Inherits:
-
Object
- Object
- Rack::IpWhitelist
- Defined in:
- lib/rack-ip-whitelist.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, addresses) ⇒ IpWhitelist
constructor
A new instance of IpWhitelist.
- #white_listed?(env) ⇒ Boolean
Constructor Details
#initialize(app, addresses) ⇒ IpWhitelist
Returns a new instance of IpWhitelist.
5 6 7 8 |
# File 'lib/rack-ip-whitelist.rb', line 5 def initialize(app, addresses) @app = app @ip_addresses = addresses end |
Instance Method Details
#call(env) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/rack-ip-whitelist.rb', line 10 def call(env) if white_listed?(env) @app.call(env) else [ 200, {"Content-Type" => "text/html"}, "<p>You are not authorized to view this site</p>" ] end end |
#white_listed?(env) ⇒ Boolean
18 19 20 21 |
# File 'lib/rack-ip-whitelist.rb', line 18 def white_listed?(env) Rails.logger.info "WHITELIST: ENV: #{env["REMOTE_ADDR"].inspect}" Rails.env.production? ? @ip_addresses.include?(env["REMOTE_ADDR"]) : true end |