class Grnds::Sso::VpnConstraint
Constants
- LOCALHOST
- VPN
Attributes
pattern[RW]
require_login[RW]
require_login?[RW]
Public Class Methods
new()
click to toggle source
# File lib/grnds/sso/vpn_constraint.rb, line 15 def initialize self.require_login = (Rails.env != 'development') # Our deployments use nginx in a way that hides the source IP address self.pattern = LOCALHOST end
Public Instance Methods
authenticated?(request)
click to toggle source
# File lib/grnds/sso/vpn_constraint.rb, line 32 def authenticated?(request) session = request.session session[:init] = true unless session.loaded? return session['uid'].present? end
configure() { |self| ... }
click to toggle source
# File lib/grnds/sso/vpn_constraint.rb, line 22 def configure yield self end
matches?(request)
click to toggle source
# File lib/grnds/sso/vpn_constraint.rb, line 26 def matches?(request) return false unless !require_login? || authenticated?(request) return on_the_vpn?(request) end
on_the_vpn?(request)
click to toggle source
# File lib/grnds/sso/vpn_constraint.rb, line 39 def on_the_vpn?(request) case pattern when String return pattern == request.remote_ip else return pattern.match(request.remote_ip) end raise "VPN not defined" end