Class: Liveness::Access
- Inherits:
-
Object
- Object
- Liveness::Access
- Defined in:
- lib/liveness/access.rb
Overview
Access Control
Instance Method Summary collapse
-
#allowed? ⇒ Boolean
Is allowed to access.
-
#initialize(request, config:) ⇒ Access
constructor
A new instance of Access.
-
#valid_token? ⇒ Boolean
Is token valid.
-
#whitelist? ⇒ Boolean
Is ip in whitelist.
Constructor Details
#initialize(request, config:) ⇒ Access
Returns a new instance of Access.
14 15 16 17 |
# File 'lib/liveness/access.rb', line 14 def initialize(request, config:) @request = request @config = config end |
Instance Method Details
#allowed? ⇒ Boolean
Is allowed to access
24 25 26 |
# File 'lib/liveness/access.rb', line 24 def allowed? whitelist? && valid_token? end |
#valid_token? ⇒ Boolean
Is token valid
33 34 35 36 37 |
# File 'lib/liveness/access.rb', line 33 def valid_token? return true if @config.token.nil? @config.token == @request.params['token'] end |
#whitelist? ⇒ Boolean
Is ip in whitelist
44 45 46 47 48 49 50 51 52 53 |
# File 'lib/liveness/access.rb', line 44 def whitelist? return true if @config.ip_whitelist.empty? return true if IPAddr.new('127.0.0.1').include?(@request.ip) return true if IPAddr.new('::1').include?(@request.ip) @config .ip_whitelist .map { |ip| IPAddr.new(ip) } .reduce(true) { |curr, addr| curr & addr.include?(@request.ip) } end |